2010-10-06 32 views
12

Bạn có thể giúp tôi không? Tôi đã thử:Cách sử dụng setImageUri() trên Android

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

nhưng tôi không thấy gì cả, chỉ đơn giản là nút vô hiệu.

+0

Bạn có cần tải hình ảnh cụ thể từ vị trí trên đĩa (như thẻ SD) hay không bằng cách tải nó dưới dạng tài nguyên từ R? –

+0

Có lẽ bạn cần phải thêm vào 'file: //' –

Trả lời

6

Nó phải là

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

+0

thanx nhưng tôi đã thử điều này quá, vẫn không có gì: ( – ilredelweb

13
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; 
    } 
+0

cảm ơn, phương thức 'getImageBitmap' này hoạt động cho tôi. Tốt hơn là sử dụng' setImageURI' – Solostaran14

+0

@iredelweb thực sự nên chấp nhận điều này câu trả lời. – Max

3

Làm thế nào về vấn đề này một:

Bitmap bitmap = BitmapFactory.decodeFile(fullFileName); 
imgProfileImage.setImageBitmap(bitmap); 
1

hết sức mình để tránh việc xây dựng con đường bằng tay, hãy thử:

imgbt.setImageUri(Uri.fromFile(new File("/data/data/...."))); 
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); 
      } 
0

tôi giải quyết nó bằng khung:

  1. thêm vào gradlle:

    implementation 'com.facebook.fresco:fresco:1.8.0' 
    
  2. Init thư viện trong ứng dụng lớp:

    Fresco.initialize(applicationContext) 
    

Cũng trong xml:

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

Và trong mã:

binding.avatar.setImageURI(user.getAvatarUrl()) 

Xin lỗi cho các tab. lỗi trong trang web

Các vấn đề liên quan