Load an Image from the Gallery in Android - java

I'm currently doing a Widget in Android. It is on the market and it's free.
I want to surprise the users by let them choose a picture they want to show in the widget.
Now...
If the widget is clicked, a PreferenceActivity appears. <-- Works!
In this Activity the user should be able to choose a picture from the phone picture gallery. <-- HOWTO?
After the User selected the prefered picture, the picture path or the drawable object should be stored in the SharedPreferences. <-- Would be really nice!
Is there any solution?
Thx!

In order to get an image from the Gallery, you must send an intent to start up the Gallery for the user to choose an image as such
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 10);
This will start the gallery and will call onActivityResult within your activity.

Related

On click of app icon full screen the picture in picture content

I am using jitsi-android-sdk in which when I go click home screen it takes me to the picture in picture mode and when I click on the app takes me back to the first form page. How should full screen the picture in picture mode when I click on the app?
what should I put in onResume() so I can full-screen picture in picture on click of the app.
For example, When we are using Netflix and watching a movie on mobile when we press the home button it enters the picture in picture mode and when we click on the app icon it fullscreen the picture in picture mode (return to the movie in fullscreen which we are watching)
I want to implement the same behavior in my android app.
The first check which activity is going to paused state when the app goes picture in picture on that activity onResume() method add this code.
#Override
protected void onResume() {
super.onResume();
SharedPreferences sharedpreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
//get boolean value from shared preferences which we are store when joining meeting button is clicked
boolean check = sharedpreferences.getBoolean(met,false);
if (check){
//if meeting is going on redirect to meeting
//Replace JitsiMeetAcitvity.class with your picture in picture activity class
startActivity(new Intent(this, JitsiMeetActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
}
}
I have used the shared preferences to keep the track of the meeting is going on or not.
If you want to see in detail Follow this

How to make classes in android-studio to use the same root layout but with different text shown on TextViews

I am a beginner and this is my first app.
I am making an app that will show the user Text View in the mainActivity.xml, ex.Music, then the user can click on the 'music' text View(via intent) , and it goes to another activity where are displayed several other text views.
ex. Rap, Pop, Rock, Punk ... each of these views can be clicked (with intent), and again it leads to another activity, where are displayed various sub-genres of let's say Rock, and the user can click on one of them and then it shows some text views with name of the songs of that genre and if clicked the final intent leads the user to the Youtube app.
The 'problem' is that I have to create new class and new activity for every genre, create text view with id in xml layout , define intent in the class with setOnClickListener and goes to another activity.
If i do this for every genre, I may need more than 200+ classes and layouts for the whole app.
Is there some way to make a one root layout xml, and just in every class use that layout but with different text in text views.
Also can i somehow reduce the number of classes needed for this ?
I tried with ArrayList<> to add the text in text views but i can't find the id so that i can call the intent.
You can send data trough the intent and then set this data to the textfield
In your sender Activity
Intent myIntent = new Intent(this, GenreClass.class);
myIntent.putExtra("genre","rock");
startActivity(myIntent);
In the receiver Activity
Intent myIntent = getIntent();
String genre = myIntent.getStringExtra("genre");
myTextView.setText(genre)

Pressing power button during photo viewing with share menu on results in black screen afterward

Android system's default photo viewing app is used as the default viewer. It functions normally.
The code for photo viewing button is as follows:
//view source image
public void viewSourceClicked(View view){
Uri uri = getImageUri(this, MethodCommons.convertByteArrayToBitmap(itemToBeEdited.getOriginalImage()));
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
startActivity(intent);
}
Except, when viewer's share button is pressed showing the share menu, if the user presses power button (closes the screen), then clicking this button after resuming the activity results only in a black screen.
Restarting the app containing the photo-viewing button does not resolve the issue.
This black screen can only be resolved by opening the default photo viewing app and click the share button once. So I figure that it relates to photo viewer's share activity being left open somehow.
How to prevent such black screen from occurring? any other suggestions?
Eventually I figured out that this resulted from using MediaStore.Images.Media.insertImage.
Using FileProvider in place of insertImage solved the problem.

Android - Show set wallpaper button when image selected

i want to create wallpaper app.
i want user click image show whole image and visible set wallpaper button.
like this pictures
after licked like this
The problem is to show set wallpaper button when image clicked and show whole image.
Thank you!
to display all image display activity use recyclerview with GridLayoutManagerlike this
private GridLayoutManager lLayout;
lLayout = new GridLayoutManager(MainActivity.this, 2);
recyclerview.setLayoutManager(lLayout);
check this link for how to use recyclerview with GridLayoutManager
for display image create a new activity and pass the image when user select image from recyclerview to that activity and display
Ask me in case of any query

How can I "kill" an intent in Android java

The title is probably not the best but I will try to explain my problem.
I have a login/signup page where I can click on a facebook button to login through or I can click on a mail button.
When I click on this button, I open a new activity with a form to sign up. I want this activity to be transparent to a certain extent to see my first login/signup in the background page which is done. On this same page (sign up page), I have another button "I already have an account" that opens a new login activity.
This login activity is also transparent but the background is the sign up form and not my first page which is normal but I don't know how to get my first page as a background.
Any advice ?
Regards,
Arnaud
You just need to call finish()
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
Call finish() when you move to your signin page. This'll finish the signup form and the first page will show up as your background.

Categories