2010-10-06 15 views
12

¿Me puede ayudar por favor? Lo he intentado:Cómo usar setImageUri() en Android

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

pero no vi nada, simplemente un botón de vacío.

+0

¿Necesita cargar la imagen específicamente desde una ubicación en el disco (como una tarjeta SD) o está bien cargarla como un recurso de R? –

+0

Quizás necesite anteponer 'file: //' –

Respuesta

6

Debe ser

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

+0

thanx pero intenté esto también, todavía nada :( – 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

gracias, este método 'getImageBitmap' funciona para mí. Mucho mejor que usar' setImageURI' – Solostaran14

+0

@iredelweb realmente debería aprobar esto responder. – Max

3

¿Qué tal este:

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

Su mejor para evitar la construcción de la ruta a mano, tratan:

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 lo resolvió con el marco:

  1. añadió a gradlle:

    implementation 'com.facebook.fresco:fresco:1.8.0' 
    
  2. biblioteca Init en su clase de aplicación:

    Fresco.initialize(applicationContext) 
    

También en xml:

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

Y en el código:

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

Disculpe las tabs. error en el sitio