Устаревший метод, но для замены метода требуется более высокий api
Я хотел использовать view.setBackgroundDrawable(Drawable)
, но этот метод устарел. Он заменяется на .setBackground(Drawable)
. Но мой минимум API 8 не может справиться с этим. Он сообщает мне, чтобы установить минимум в API 16.
Есть ли способ использовать другой метод, основанный на API устройства?
Что-то вроде
if(API<16)
{
view.setBackgroundDrawable(Drawable)
}
else
{
view.setBackground(Drawable)
}
Или мне действительно нужно изменить минимальный API для этого?
Ответы
Ответ 1
setBackgroundDrawable
устарел, но он по-прежнему работает, поэтому вы можете просто использовать его. Но если вы хотите быть абсолютно правильным, вы должны использовать что-то вроде этого
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
setBackgroundDrawable()
} else {
setBackground();
}
Для этого вам нужно установить buildTarget api 16 и min build to 7 или что-то подобное.
Ответ 2
Что-то вроде этого:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN){
view.setBackgroundDrawable(Drawable)
} else {
view.setBackground(Drawable)
}
Ответ 3
Вы можете использовать различные методы на основе версий API.
Например,
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
//Methods for version <8 (FROYO)
} else {
// Methods for version >=8
}
Здесь установите targetSDkversion
в более высокие версии (например, здесь 16) и установите minsdkversion
в более низкие версии (API 7).