Jump to content

[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 !

 

Link to comment
Share on other 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);

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...