2010-02-22 22 views
16

se relaciona con:ImageView.setImageURI NO funciona cuando se trata de asignar un R.drawable.X Uri

Need suggestion about a mixed "Uri/int id" images ambient

ahora mi problema es que:

ImageView imgView=(ImageView)findViewById(R.id.imgView); 
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image); 
imageView.setImageURI(imgUri); 

no funciona. ¿por qué?

Sé que

imgView.setImageDrawable(Drawable.createFromStream(
        getContentResolver().openInputStream(imgUri), 
        null)); 

trabajo.

pero eso NO resuelve mi problema. porque quiero establecer la imagen con un uri independientemente si proviene de un recurso o proviene de la cámara ACTION_PICK intento ...

cualquier sugerencia es bienvenida. Gracias. Saludos

+1

No puedo creer que nadie haya tenido el mismo problema ... ni soluciones ... ¿Por qué cosas como esas no funcionan? ¿Por qué no están documentadas en absoluto? – Qlimax

Respuesta

49

Prueba este

Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image); 
imageView.setImageURI(null); 
imageView.setImageURI(imgUri); 

Ésta es una solución para actualizar un ImageButton, que intenta almacenar en caché la imagen anterior Uri. Al pasar null, se restablece de manera efectiva.

Solución sugerida de este libro: Sams Teach Yourself Android Application Development in 24 Hours - Muy recomendable de leer.

+3

Gracias. Android es atroz, desperdició la mitad de mi día. Tu solución hizo el truco. – andude

+0

¡Gracias! Por cierto, no funcionó para mí en imágenes muy grandes ... En pequeñas fotos funciona bien. – walla

+0

@walla Esto tampoco funcionó para mí. ¿Tienes otra respuesta? –

0

imageView.postInvalidate() funciona. O imageView.invalidate() si está en el hilo de la interfaz de usuario.

Cuestiones relacionadas