У меня есть:
манифеста:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="18" />
Источник:
View view = createViewFromWhatever();
Bitmap bitmap = loadSomethingAddMore();
Всюду, где я искал это, принимается, предлагается:
view.setBackgroundDrawable(new BitmapDrawable(bitmap));
Но он устарел в API 18. Меня терроризируют фреймворки и пропущенные документы на уровне ОС. Я хочу уважать то, что они говорят, и в случае аварии "это не моя вина"
Я даже не могу использовать new BitmapDrawable(bitmap)
, а мне нужно new BitmapDrawable(getActivity().getResources(), bitmap)
. Если я поменяю свой метод на рекомендуемый способ: setBackground(new BitmapDrawable(getActivity().getResources(), bitmap));
Он будет отмечен как ошибка с сообщением:
Для вызова требуется уровень API 16 (текущий минимум равен 10): android.widget.RelativeLayout # setBackground
В качестве решения я мог проверить, какая версия работает у пользователя и делать if-else, чем у меня будет код с if(isAndroidVersion10()) else if () ...
Решение любого приемлемого решения?
Если я уйду из предупреждений об отказе от рефлексии через отражение, я все равно возьму на себя ответственность в случае сбоя, потому что у меня выпущен код с устаревшим методом! - как раз то, как я называю, отличается.
Если я проигнорирую этот Lint, он будет сбой при низкой версии api, проверен.
Ofc Я хочу поддерживать API 10, поэтому не могу принять большинство ответов здесь