20

你能帮我吗?我试过了 :

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

但我什么也没看到,只是一个空按钮。

4

7 回答 7

18

ImageView.setImageUri 仅适用于本地 Uri,即对本地磁盘文件的引用,而不是网络上图像的 URL。

这是一个如何从网络中获取位图的示例。

    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;
    } 

从 getImageBitmap() 获得位图后,使用:imgView.setImageBitmap(bm);

于 2012-02-06T12:02:33.943 回答
8

它应该是

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

于 2010-10-06T08:59:52.047 回答
4

这个怎么样:

Bitmap bitmap = BitmapFactory.decodeFile(fullFileName);
imgProfileImage.setImageBitmap(bitmap);
于 2014-08-22T22:10:18.410 回答
2

最好避免手动构建路径,尝试:

imgbt.setImageUri(Uri.fromFile(new File("/data/data/....")));
于 2015-08-12T07:20:17.803 回答
1

我也遇到了这个问题,它没有显示任何东西。我在android开发人员中看到了类似的东西。它没有使用 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;
}

仅供参考。

于 2018-12-04T07:29:23.010 回答
0

我用框架解决了它。将此行添加到 gradle 中:

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

在应用程序类(或您的应用程序中的另一个主类)中初始化 singlton

Fresco.initialize(applicationContext)

最后,使用它。

XML:

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

爪哇:

avatar.setImageURI(user.getAvatarUrl())
于 2018-02-11T13:32:23.320 回答
0
 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);
            }
于 2016-01-20T07:51:57.120 回答