context.getDrawable()
W moim projekcie użyłem w ten sposób:
Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen);
Ale Eclipse daje mi błąd, który wymaga pliku Minimum API level of 21
. Oznaczałoby to, że po szybkim wyszukiwaniu w Google moja aplikacja będzie dostępna tylko w Android 5.0
. Ponieważ nie wszystkie urządzenia używają tej wersji Androida, chciałbym mieć alternatywę dla context.getDrawable()
.
Spróbuj dodać
getResources()
po kontekście, więc tak:powinno działać.
źródło
Miałem taką samą sytuację, w której chciałem odwołać się do metody getDrawable (), która jest obecnie przestarzała.
czego użyłem,
Mam nadzieję, że to ci pomoże
źródło
Miałem wcześniej podobny problem. Czy próbowałeś to zrobić w ten sposób?
źródło
Spróbuj tego:
źródło
Powinieneś użyć "getDrawable (id, this.getTheme ())". Ta metoda nie jest do tej pory przestarzała.
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)); }
źródło
Zgadzam się na użycie ContextCompact.getDrawable (kontekst kontekstowy, int resID). U mnie zadziałało, a moja aplikacja jest przeznaczona dla interfejsu API 19.
źródło
Możesz również ustawić zasób bezpośrednio, bez pracy z rysunkiem (Kotlin):
źródło
Rozwiązanie dla programistów Kotlin wygląda następująco:
lub (z API 22)
źródło