2015-10-31 2 views
0

J'ai essayé d'imprimer une image dans une nouvelle mise en page mais cela ne fonctionne pas Quelqu'un peut-il m'aider?Comment imprimer une image dans une nouvelle mise en page

ici le code:

dans MainActivity:

case R.id.gallery: //in the moment that the user pressed the button pickAPic, the app will give him to choose a picture 
       startActivity(new Intent(MainActivity.this, Main2Activity.class)); 

       Intent pickImageIntent = new Intent(Intent.ACTION_PICK, 
         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); //the app ask access for the gallery 
       startActivityForResult(pickImageIntent, REQUEST_PICK_PIC); // when he press on a pic 
       break; 

dans main2activity:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 

    switch (requestCode) { 
     case REQUEST_PICK_PIC: 
      if (resultCode == RESULT_OK) { 
       Uri imageUri = intent.getData(); 
       Bitmap bitmap; 
       try { 

        bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri); 
        iv.setImageBitmap(bitmap); // the app "prints" the image that the user choose 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      break; 

    } 
} 

alors quel est mon problème?

vous remercie pour l'aide

Répondre

0

Vous devez commencer votre main2activity gérer après la onActivityResult de votre MainActivity comme:

MainActivity:

case R.id.gallery: //in the moment that the user pressed the button pickAPic, the app will give him to choose a picture 

    Intent pickImageIntent = new Intent(Intent.ACTION_PICK, 
    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); //the app ask access for the gallery 
    startActivityForResult(pickImageIntent, REQUEST_PICK_PIC); // when he press on a pic 
    break; 

... 

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 

    switch (requestCode) { 
     case REQUEST_PICK_PIC: 
      if (resultCode == RESULT_OK) { 
       Uri imageUri = intent.getData(); 
       Intent intent = new Intent(MainActivity.this, Main2Activity.class); 
       intent.putExtra("IMAGE_URI", uri.toString()); 
       startActivity(intent); 
       } 
      break; 

    } 
} 

dans main2activity:

@Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      ... 
      Uri uri = Uri.parse(getIntent().getStringExtra("IMAGE_URI")); 
      Bitmap bitmap; 
       try { 

        bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri); 
        iv.setImageBitmap(bitmap); // the app "prints" the image that the user choose 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
    } 
+0

si Comment puis-je le faire? –

+0

cause dans l'activité principale j'ai "choisir de la galerie" et je veux que le main2activity va imprimer l'image –

+0

Ok, donc vous pouvez gérer le "onActivityResult" pour obtenir l'image sélectionnée dans votre mainActivity et démarrer le "main2activity" après (avec l'image sélectionnée dans l'intention, vous passez à la méthode startActivity). C'est mieux parce que vous pouvez gérer le cas lorsque l'utilisateur ne sélectionne pas une image (en appuyant sur le bouton Retour), et je pense que vous ne voulez pas démarrer main2activity dans ce cas? Avez-vous besoin d'un exemple de code? – Bubu