Все ответы о настройке цвета на прозрачный будут работать технически . Но есть две проблемы с этими подходами:
- Вы получите 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);