Android-новый BitmapDrawable устаревший; альтернативный Bitmap.createBitmap должен иметь w / h> 0

я использовал всплывающее окно. С этой PopupWindow я поставил BackgroundDrawable в пустую BitmapDrawable.

когда я использую следующий код, он дает устаревшие внимание:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

поэтому я изменил его на:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(0, 0, Bitmap.Config.ARGB_8888)
));

Это дало мне ошибку, что растровое изображение должно иметь ширину и высоту больше, чем 0.

прямо сейчас я использую:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)
));

и это работает. Но это просто кажется немного неправильным использовать растровое изображение 1x1 пикселя вместо совершенно пустой, как я и хотел. Есть ли другой способ фактически использовать пустой BitmapDrawable, а не тот, который равен 1 на 1 пикселей?

1 ответов


ОК, вместо

myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

или

myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)
));

Я просто использую цвет фона (new ColorDrawable(android.graphics.Color color)), который я хочу установить в всплывающее окно. Например, у одного из моих всплывающих окон просто было несколько изображений без полей между ними, поэтому я использовал прозрачный фон для него:

myPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

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

myPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));