Подтвердить что ты не робот

Удаление фонового рисунка в андроиде

Удаление фонового цвета в Android

Я установил backgroundColor в код, подобный этому,

View.setBackgroundColor(0xFFFF0000);

Как удалить этот цвет фона в каком-либо событии?

4b9b3361

Ответ 1

Попробуйте установить цвет фона на прозрачный:

view.setBackgroundColor(0x00000000);

Ответ 2

Вы можете использовать

View.setBackgroundColor(Color.TRANSPARENT);

или

View.setBackgroundColor(0);

Помните, что почти все видимое на экране расширение View, например, Button, TextView, ImageView, любой вид макета и т.д.

Ответ 3

View.setBackgroundColor(0); также работает. Нет необходимости ставить все эти нули.

Ответ 4

Все ответы о настройке цвета на прозрачность будут работать технически. Но есть две проблемы с этими подходами:

  • В итоге вы получите overdraw.
  • Существует лучший способ:

Если вы посмотрите, как работает View.setBackgroundColor(int color), вы увидите довольно простое решение:

/**
 * Sets the background color for this view.
 * @param color the color of the background
 */
@RemotableViewMethod
public void setBackgroundColor(@ColorInt int color) {
    if (mBackground instanceof ColorDrawable) {
        ((ColorDrawable) mBackground.mutate()).setColor(color);
        computeOpaqueFlags();
        mBackgroundResource = 0;
    } else {
        setBackground(new ColorDrawable(color));
    }
}

Цвет int просто преобразуется в ColorDrawable, а затем передается в setBackground(Drawable drawable). Поэтому решение удалить фоновый цвет - это просто исключить фон с помощью:

myView.setBackground(null);