Voici ce que j'essaie de faire. Je voulais que l'utilisateur choisisse une image de sa galerie en tant que fond d'activité dans l'application.Définir l'arrière-plan de la galerie à tous les arrière-plans d'activité
Voici ce que j'ai fait 1.J'ai une préférence partagée et deux autres attributs dans chaque activité que je veux appliquer l'utilisateur de papier peint choisir. Voici le
private static final String PREF_NAME = "nextage_quiz";
private static final int PRIVATE_MODE = 0;
SharedPreferences getPrefs;
2. l'action se faire dans des activités où lorsque l'utilisateur clique sur le ImageView, il lancera l'image Galerie Selector. Voici le code pour ImageView, la méthode pour démarrer le sélecteur d'image de la galerie.
1.Inside le ImageView clickListener
private static int Load_Image_From_Gallery = 1;
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, Load_Image_From_Gallery);
2.Le code onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Load_Image_From_Gallery && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ImageViewBackground5.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
Comme vous pouvez le voir, je parviens à définir l'image sélectionnée de la galerie comme l'arrière-plan ImageView. Mais je voulais la même image que l'utilisateur a choisi pour être l'arrière-plan de toutes les autres activités. J'ai peu de sélection d'image dans mon application pour permettre à l'utilisateur de l'utiliser comme arrière-plan. Voici comment je l'ai fait.
Dans SettingsActivity (onCreate)
getPrefs = this.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
Ensuite, lorsque l'utilisateur clique sur l'un de l'image sélectionnée, l'image est sélectionnée comme fond d'écran pour chaque activité.
2.inside le imageView particulier
getPrefs.edit().putInt("id", R.drawable.wallpaper2).apply();
3.Procédé de code qui est placé dans toute l'activité de changer le papier peint.
getPrefs = this.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
ImageView background= (ImageView) findViewById(R.id.background);
if(getPrefs.getInt("id",0) != 0)
background.setBackgroundResource(getPrefs.getInt("id",0));
Donc, encore une fois, comment puis-je utiliser l'utilisateur d'image sélectionné comme arrière-plan pour chaque activité. J'ai essayé de convertir de BitMap à Drawable mais échoue toujours. Toute aide serait utile. p.s La plupart des codes proviennent de plusieurs sites Web. Merci d'avance.
Speechless. Merci encore Monsieur @Sohail Zahid. – narispillai