2010-10-06 9 views
12

Czy możesz mi pomóc? Próbowałem:Jak korzystać z setImageUri() na Androidzie

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

ale nic nie widziałem, po prostu przycisk void.

+0

Czy musisz załadować obraz konkretnie z lokalizacji na dysku (jak karta SD) lub czy ładujesz go jako zasób z R? –

+0

Być może musisz przedłożyć 'file: //' –

Odpowiedz

6

Powinno być

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

+0

thanx, ale próbowałem tego również, wciąż nic :( – 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

dzięki, ta metoda 'getImageBitmap' działa dla mnie O wiele lepiej niż przy użyciu' setImageURI' – Solostaran14

+0

@iredelweb powinien naprawdę zatwierdzić to odpowiedź. – Max

3

Jak o tym jednym:

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

wszelkich starań, aby uniknąć budując ścieżkę ręcznie, spróbuj:

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

I rozwiązał go ramowo:

  1. dodany do gradlle:

    implementation 'com.facebook.fresco:fresco:1.8.0' 
    
  2. Init biblioteki w aplikacji klasy:

    Fresco.initialize(applicationContext) 
    

także w xml:

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

I w kodzie:

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

Przepraszamy za zakładki. błąd na stronie

Powiązane problemy