Je suis nouveau en programmation. J'implémente un projet qui se compose de 3 classes java (FirstActivity, SecondActivity et ResultActivity). L'image prise est à FirstActivity. Je dois transférer l'image vers SecondActivity, puis de SecondActivity vers ResultActivity. Notez que FirstActivity et ResultActivity n'ont qu'une vue d'image avec laquelle s'afficher. Aidez-moi, s'il vous plaît. Quelqu'un peut-il me suggérer un exemple de code pour que je sois guidé. Tout conseil sera très apprécié :)
Première activité:
ImageView imageView = findViewById(R.id.imageView); Bitmap bitmap = (Bitmap) this.getIntent().getParcelableExtra("Bitmap"); imageView.setImageBitmap(bitmap);
Deuxième activité:
final Bitmap bitmap = (Bitmap) this.getIntent().getParcelableExtra("Bitmap"); Intent i = new Intent(); i.setClass(Match.this, Request.class); i.putExtra("Bitmap", bitmap); startActivity(i);
Résultat de l'activité:
ImageView imgTaken = findViewById(R.id.imgTaken); Bitmap bitmap = ((BitmapDrawable) imgTaken.getDrawable()).getBitmap(); Intent i = new Intent(); i.setClass(ProcessImage.this, Match.class); i.putExtra("Bitmap", bitmap); startActivity(i);
S'il vous plaît, aidez-moi.
5 Réponses :
Bienvenue dans Stackoverflow, la réponse la plus simple serait de rendre votre Bitmap statique comme ceci:
imageView.setImageBitmap(FirstActivity.bitmap);
commencez l'activité suivante puis accédez à cette image comme:
public static Bitmap bitmap = null; bitmap = ((Bitmap) imgTaken.getDrawable()).getBitmap();
Salut monsieur @Faisal, aucune image n'apparaît sur ma vue d'image à l'activité des résultats. Veuillez aider :(
prenez-vous des images avec un appareil photo? puis le stocker?
Oui monsieur. J'ai appelé la caméra en utilisant Intent intent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult (intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Ok, donc après avoir pris une photo, est-ce que vous la stockez dans la galerie ou non?
Après la capture, il est automatiquement enregistré sur la galerie monsieur.
pouvez-vous publier toute votre première activité?
Envoyez avec Intent
comme ceci:
byte [] ba1 =getIntent().getByteArrayExtra("bitmap"); Bitmap bitmap = BitmapFactory.decodeByteArray(ba1,0,ba1.length);
Obtenez les données de Intent
comme ceci:
ByteArrayOutputStream bao = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bao); byte [] ba = bao.toByteArray(); Intent i = new Intent(context,SecondClass.class); i.putExtra("bitmap",ba);
Salut monsieur @ Rakesh Kumar, cela peut-il être appliqué aux activités suivantes? Comme la deuxième activité à ResultActivity?
@ student76, Oui, vous pouvez le faire en utilisant setResult (11, i);
Au lieu d'utiliser ce
Bitmap bitmap = (Bitmap) getIntent().getExtras().get("Bitmap");
Apportez cette modification
final Bitmap bitmap = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");
Le plus simple sera
celui-ci est le moyen le plus simple, mais il existe d'autres moyens d'y parvenir.
Très grand merci monsieur. J'essaierai de l'appliquer et je vous informerai si quelque chose change :)
Cela n'a pas fonctionné monsieur @Suryakant, une classe ne peut pas étendre plusieurs classes. Veuillez aider.
@ student76 a donné une autre réponse pour le même message, veuillez la parcourir.
créer une classe d'activités de base ex: la classe publique BaseActivity étend AppCompatActivity { } et crate doo tous les travaux ici
créez votre première activité ex ex: la classe publique FirstActivity étend BaseActivity { } dans ce que vous aurez vous allez traiter l'image et stocker l'image sur une variable déclarée dans l'activité de base
utilisez-vous Android? incluez également le code que vous avez essayé.
J'essaierais d'utiliser l'intention monsieur mais malheureusement, cela n'a pas fonctionné. @Karan Mer
code postal que vous avez essayé avec votre question
@KaranMer, je viens de poster le code monsieur. S'il vous plaît laissez-moi savoir si j'ai fait quelque chose de mal.
stocker l'image dans un fichier et transmettre son uri autour des activités. cochez cette stackoverflow.com/questions/649154/save-bitmap-to- emplacement
Bienvenue sur Stackoverflow, la réponse la plus simple serait de faire votre bitmap statique comme ceci: publique statique