Solución:
Int -> Dibujable:
Drawable icon = getResources().getDrawable(42, getTheme());
Dibujable -> Int:
(Supongo que estás poblando List<AppInfo> apps
con aplicaciones cuyos íconos ya están en res/drawable
carpeta de su aplicación)
Una vez que establezca su R.drawable.app1
para ImageView
, también puedes darle un tag
para identificar el recurso en el ImageView
más tarde:
ImageView appIcon1ImageView = (ImageView)findViewById(R.id.app_icon_1);
appIcon1ImageView.setImageDrawable(getDrawable(R.drawable.app1));
appIcon1ImageView.setTag(R.drawable.app1);
......
// Once you need to identify which resource is in ImageView
int drawableId = Integer.parseInt(appIcon1ImageView.getTag().toString());
Si sus íconos provienen del servidor, la única forma es almacenarlos en el disco y luego volver a cargarlos. (o, mejor, confíe en las soluciones de almacenamiento en caché de imágenes ya existentes como picasso)
UPD:
No hay forma directa de convertir Drawable
dentro int
, pero en este caso particular, es posible obtener la int
, en lugar de Drawable
de PackageManager
:
ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo(apps.get(position).getPname(),1);
int icon= applicationInfo.icon;
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)