EDIT: añaden a crear una imagen de InputStream ...
que tenían el problema similar usando ImageButton. Lo descubrí cargando el mapa de bits de los activos y usándolo como imagen para ImageButton. Probablemente no sea un buen enfoque, pero está funcionando y resolvió mi problema: imposibilidad de tener subcarpetas en dir dibujables y caracteres no permitidos en nombres de archivo.
(Sí, puedo usar el prefijo en lugar de subdirectorio, y renombrar archivos para que coincida con el patrón (sólo minúsculas y números) y probablemente lo haré más adelante.)
InputStream is = null;
try {
is = this.getResources().getAssets().open("Images/Fruits/Apple.png");
} catch (IOException e) {
Log.w("EL", e);
}
Bitmap image = BitmapFactory.decodeStream(is);
ImageButton ib2 = (ImageButton) findViewById(R.id.imageButton2);
ib2.setImageBitmap(image);
¿Cuál es el problema? ¿Se está bloqueando la aplicación? Por cierto, ¿por qué estás usando la carpeta de activos en lugar de la carpeta 'res/drawable'? –
No muestra nada. No puedo usar res/drawable ya que tengo que cambiar dinámicamente el fondo de Linearlayout. – Altaf
Realmente, tal vez necesites la carpeta de activos para otro propósito, pero puedes cambiar el fondo dinámicamente simplemente usando la carpeta 'res/dibujable':' setBackgroundResource (R.id.bg1); setBackgroundResource (R.id.bg2) ' –