Drawable to int android

Как преобразовать Drawable в int и наоборот в Android

Я хочу преобразовать Drawable в int , а затем наоборот. Обычно я хочу сохранить объект Arraylist в sharedPrefrence . Для этой цели у меня есть реализация метода преобразования Gson в Srtring. Если я использую здесь Drawable вместо int , тогда преобразование Gson String займет много времени. поэтому я хочу использовать int вместо Drawable.

Где AppInfo здесь

Вот источник преобразования ArrayList пользовательского объекта в String, чтобы я мог сохранить его в SharedPrefrence.

3 ответа

Int -> Drawable:

Drawable icon = getResources().getDrawable(42, getTheme());

Возможность рисования — & gt; Int:

Установив для R.drawable.app1 значение ImageView , вы также можете присвоить ему tag , чтобы позже идентифицировать ресурс в ImageView :

Если ваши значки поступают с сервера, единственный способ — это сохранить их на диск, а затем повторно -загрузите их. (или, что лучше, положитесь на уже существующие решения для кэширования изображений, такие как picasso)

UPD: Нет прямого способа преобразовать Drawable в int , но в этом конкретном случае можно получить int вместо Drawable из PackageManager :

Единственное решение, которое сработало для меня, было в чате @KonstantinLoginov , но вместо использования:

val drawable = context.getPackageManager().getApplicationIcon(applicationInfo) ,

Я передал в packageName:

val drawable = context.getPackageManager().getApplicationIcon(packageName) , который является строкой и может быть легко передан.

Вот как мы можем получить значок приложения и установить его для просмотра изображения.

Источник

Читайте также:  Модели сяоми которые получат андроид 11
Оцените статью