Aller au contenu

[Android] Transmettre Bitmap à travers un intent


HeyGuadah

Recommended Posts

Bonjour les développeurs !

 

Je me permets aujourd'hui de revenir vers vous car j'ai un léger problème dans mon projet.

En effet je me suis mit en tête de faire passer un Bitmap dans un intent pour le faire naviguer entre deux activités.

J'ai réussis à construire l'activité pour envoyer le bitmap en question dans un intent mais je me suis rendu compte que je n'arrivais pas à le récupérer dans mon activité d'arriver.

J'imagine donc qu'il est impossible d'envoyer un Bitmap directement et qu'il doit y avoir une méthode pour le convertir dans un autre format ou d'utiliser l'id de l'image pour l'intent mais je dois avouer que je sèche un peu, c'est actuellement hors de mes compétences.

Avez-vous des idées afin de m'aider dans mon projet ?

 

 

Je vous partage mon activité

 



public class RegisterPhoto extends AppCompatActivity implements View.OnClickListener {


    private static final int RESULT_LOAD_IMAGE = 1;


    private ImageView imageToUpload;
    private Button bUploadImage, btn_check;


    @[member=override]
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_photo);


        imageToUpload = (ImageView) findViewById(R.id.imageToUpload);
        bUploadImage = (Button) findViewById(R.id.bUploadImage);
        btn_check = (Button) findViewById(R.id.btn_send);


        bUploadImage.setOnClickListener(this);


        btn_check.setOnClickListener(new View.OnClickListener() {
            @[member=override]
            public void onClick(View v) {
                imageToUpload.buildDrawingCache();
                final Bitmap photo = imageToUpload.getDrawingCache();
              
                if (photo != null) {
                    Intent intent = new Intent(getApplicationContext(), RegisterGeoloc.class);
                    Bundle extras = new Bundle();   //*
                    extras.putParcelable("imagebitmap", photo);
                    intent.putExtra("imagebitmap", photo);                  //Send image
                    startActivity(intent);
                    Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.ok), Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.nok), Toast.LENGTH_SHORT).show();
                }
            }
        });


    }


public void onClick(View v){
        switch (v.getId()){
            case R.id.bUploadImage:
                Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
                break;


        }
    }


    @[member=override]
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data != null) {
            Uri selectedImage = data.getData();
            imageToUpload.setImageURI(selectedImage);
        }
    }


 

L'image est choisit par l'utilisateur dans son espace de stockage externe et la boucle if ne renvoie pas null pour la variable photo.

 

Merci pour vos réponses !

 

Lien vers le commentaire
Partager sur d’autres sites

Salut, 

 

vu que tu as envoyé ton image avec un "putExtra", tu dois ensuite la récupérer avec getExtra. 

 

Ensuite, à quoi sert de faire puisque tu n'envoies pas l'objet "extras"? 

extras.putParcelable("imagebitmap", photo);

intent.putExtra("imagebitmap", photo);

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...