В context.getDrawable()
своем проекте я использовал вот что:
Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen);
Но Eclipse выдает ошибку, требующую Minimum API level of 21
. Это будет означать, что после быстрого поиска в Google мое приложение можно будет использовать только Android 5.0
. Поскольку не все устройства используют эту версию Android, я хотел бы иметь альтернативу context.getDrawable()
.
Попробуйте добавить
getResources()
после контекста, так что это:должно сработать.
источник
У меня была такая же ситуация, когда я хотел сослаться на метод getDrawable (), который теперь устарел.
что я использовал,
Надеюсь, что это поможет вам
источник
Раньше у меня была похожая проблема. Вы пробовали сделать это вот так?
источник
Попробуй это:
источник
Вы должны использовать getDrawable (id, this.getTheme ()). Этот метод до сих пор не считается устаревшим.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { view.setBackground(getResources().getDrawable(R.drawable.radioline,this.getTheme())); } else { view.setBackground(getResources().getDrawable(R.drawable.radioline)); }
источник
Я согласен использовать ContextCompact.getDrawable (Context context, int resID). У меня это сработало, и мое приложение нацелено на API 19.
источник
Вы также можете установить ресурс напрямую, не работая с drawable (Kotlin):
источник
Решение для Kotlin-программистов выглядит так:
или (из API 22)
источник