2017-07-19 4 views
0

J'ajoute une nouvelle image à la classe Camera2Fragement pour afficher une image bitmap dans une boîte de dialogue d'alerte, mais je n'obtiens qu'une boîte de dialogue vide sans aucune image. Qu'est-ce que je fais mal. Est-ce lié à fragment où nous ne pouvons pas télécharger l'image à la vue de l'image ou un autre problème. Voici mon code:Afficher une image bitmap dans une boîte de dialogue d'alerte dans le fragment

public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.picture: { 
       takePicture(); 
       break; 
      } 
      case R.id.info: { 
       Activity activity = getActivity(); 
       if (null != activity) { 
        new AlertDialog.Builder(activity) 
          .setMessage(R.string.intro_message) 
          .setPositiveButton(android.R.string.ok, null) 
          .show(); 
       } 
       break; 
      } 
      case R.id.result: { // added code 
       Activity activity = getActivity(); 
       if (null != activity) { 

        view = View.inflate(activity, R.layout.dialog_layout, null); 

        ImageView imgRefInflated = (ImageView) view.findViewById(R.id.dialog_imageview); 

        Picasso.with(activity).load("/mnt/sdcard/DCIM/mResultImg.jpg").into(imgRefInflated); 
        //imgRefInflated.setImageBitmap(BitmapFactory.decodeFile("/mnt/sdcard/DCIM/mResultImg.jpg")); 
        Log.d(TAG, "I can reach here"); 


        AlertDialog.Builder builder = new AlertDialog.Builder(activity); 

        builder.setNegativeButton("Close", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          dialog.dismiss(); 
         } 
        }); 

        AlertDialog dialog = builder.create(); 
        dialog.setView(view); 
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
        dialog.show(); 

       } 
       break; 
      } 
     } 
    } 

Répondre

0

Vous essayez de définir une image dans ImageView à l'intérieur de AlertDialog, qui n'est pas affichée. Rearange votre code comme ceci:

view = View.inflate(activity, R.layout.dialog_layout, activity); 

AlertDialog dialog = new AlertDialog.Builder(this) 
     .setNegativeButton("Close", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.dismiss(); 
      } 
     }) 
     .setView(view) 
     .create(); 
dialog.show(); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

ImageView imgRefInflated = (ImageView) view.findViewById(R.id.dialog_imageview); 
Picasso.with(activity).load("/mnt/sdcard/DCIM/mResultImg.jpg").into(imgRefInflated); 
+0

Merci pour votre réponse. J'ai essayé votre réponse mais cela n'a pas fonctionné. @Artyom Dorosh – Nani

+0

@Nani il semble que vous chargiez des données de stockage interne. Avez-vous une autorisation pour accéder au stockage interne? Et il semble que vous utilisez un chemin incorrect à votre image. –

+0

Merci, cela a fonctionné quand j'ai mis l'image en utilisant: imgRefInflated.setImageBitmap (résultat); – Nani