Saltar al contenido

Cómo convertir Drawable en int y viceversa en Android

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *