0
votes

Est-il possible de transférer l'image vers 3 activités différentes?

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.


6 commentaires

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


5 Réponses :


0
votes

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();


6 commentaires

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é?



2
votes

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);


2 commentaires

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);



0
votes

Au lieu d'utiliser ce

 Bitmap bitmap = (Bitmap) getIntent().getExtras().get("Bitmap");

Apportez cette modification

final Bitmap bitmap  = (Bitmap) this.getIntent().getParcelableExtra("Bitmap");


0 commentaires

0
votes

Le plus simple sera

  1. créez une BaseActivity qui étend tout votre premier, deuxième et résultat activité avec BaseActivity.
  2. Stockez l'image bitmap dans une variable déclarée dans BaseActivity.
  3. Et à partir de BaseActivity, vous pouvez avoir accès à l'image bitmap à partir de n'importe laquelle de vos activités.

celui-ci est le moyen le plus simple, mais il existe d'autres moyens d'y parvenir.


3 commentaires

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.



0
votes

  1. créer une classe d'activités de base ex: la classe publique BaseActivity étend AppCompatActivity { } et crate doo tous les travaux ici

  2. 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

  3. créez votre deuxième activité ex ex: la classe publique SecondActivity étend BaseActivity { } accédez maintenant directement à la variable que vous déclarez dans BaseActivity. maintenant vous avez accès à l'image
  4. créez votre deuxième activité ex ex: la classe publique ThirdActivity étend BaseActivity { } Identique à SecondActivity. de cette façon, vous pouvez avoir accès au bitmap dans toutes vos activités.

0 commentaires