Получить идентификатор ресурса иконки программы запуска - PullRequest
0 голосов
/ 19 сентября 2018

Вот как я получаю значок запуска для приложения (код Колтина, но этот вопрос не имеет никакого отношения к Kotlin):

val packageManager = packageManager()
val applicationInfo = packageManager.getApplicationInfo(packageName, 0)
val drawable = applicationInfo.loadIcon(packageManager)

Моя точка зрения теперь, когда TaskManager не одобряет использование non-res значки, это получить значение или DrawableRes этого значка средства запуска (например, идентификатор, равный R.drawable.ic_launcher).

Я не смог найти способ.Возможно ли это динамически (или это невозможно из-за генерации R.java?), Без явного набора?

1 Ответ

0 голосов
/ 19 сентября 2018

Если вы хотите получить соответствующий идентификатор ресурса значка и знаете имя пакета и имя элемента, вы можете сделать это следующим образом:

int resourceId = this.getResources().getIdentifier("nameOfResource", "drawable", this.getPackageName());

" this "деятельность, в которой выполняется код.
" nameOfResource " - это имя самой иконки (без расширения файла)
" drawable " - это имя подпапки res ,где находится значок.

Вы можете найти документацию по функции здесь

В качестве альтернативы вы можете получить идентификатор ресурса приложения:

final PackageManager packageManager = getPackageManager();
final ApplicationInfo applicationInfo=packageManager.getApplicationInfo(packageName,PackageManager.GET_META_DATA);
final int appIconResId=applicationInfo.icon;

Это похоже на ваш подход.Поиск по всем ресурсам вашего приложения и получение доступа к значку идентификатора в качестве члена возвращаемой информации.

...