web-dev-qa-db-fra.com

Comment utiliser setImageUri () sur Android

Pouvez-vous m'aider s'il vous plaît? J'ai essayé :

ImageButton imgbt=(ImageButton)findViewById(R.id.imgbutton);
Uri imgUri=Uri.parse("/data/data/MYFOLDER/myimage.png");
imgbt.setImageUri(imgUri);

mais je n'ai rien vu, simplement un bouton vide.

16
ilredelweb
    private Bitmap getImageBitmap(String url) {
        Bitmap bm = null;
        try {
            URL aURL = new URL(url);
            URLConnection conn = aURL.openConnection();
            conn.connect();
            InputStream is = conn.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);
            bm = BitmapFactory.decodeStream(bis);
            bis.close();
            is.close();
       } catch (IOException e) {
           Log.e(TAG, "Error getting bitmap", e);
       }
       return bm;
    } 
15
SoH

CA devrait etre

Uri imgUri=Uri.parse("file:///data/data/MYFOLDER/myimage.png");
6
bhups

Celui-ci, ça va:

Bitmap bitmap = BitmapFactory.decodeFile(fullFileName);
imgProfileImage.setImageBitmap(bitmap);
3
mehrdad seyrafi

J'ai également rencontré ce problème, il n'a montré rien .. J'ai vu quelque chose comme ça dans le développeur Android. Il n'a pas utilisé setImageURI.

private Bitmap getBitmapFromUri(Uri uri, Context context) throws IOException {
    ParcelFileDescriptor parcelFileDescriptor =
            context.getContentResolver().openFileDescriptor(uri, "r");
    FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
    Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
    parcelFileDescriptor.close();
    return image;
}

Juste pour ta culture.

1
kose livs

Il est préférable d'éviter de construire le chemin à la main. Essayez:

imgbt.setImageUri(Uri.fromFile(new File("/data/data/....")));
1
vine'th
 String imgPath = Environment.getDataDirectory() + "/data/com.wariyum.signage/files/"+ "221215-085656.619.72.jpg";

    //Following lines was expected work, but don't really show up image always - no idea why
    //imgZoom.setImageURI(Uri.parse(imgPath)); 

    //following works always perfectly
            File imgFile = new  File(imgPath);
            if(imgFile.exists()){
                Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
                imgZoom.setImageBitmap(myBitmap);
            }
0
Nazeel

Je l'ai résolu avec cadre. Ajout de cette ligne dans le classement:

implementation 'com.facebook.fresco:fresco:1.8.0'

Init singlton in application-class (ou une autre classe principale de votre application)

Fresco.initialize(applicationContext)

Et en fin de compte, utilisez-le. 

XML:

 <com.facebook.drawee.view.SimpleDraweeView
  Android:id="@+id/avatar"
  Android:layout_width="110dp"
  Android:layout_height="110dp" /> 

Java:

avatar.setImageURI(user.getAvatarUrl())
0
Georgiy Chebotarev