web-dev-qa-db-ja.com

androidでビューの背景色を削除する

Androidでの背景色の削除

私はこのようなコードでbackgroundColorを設定しました、

View.setBackgroundColor(0xFFFF0000);

一部のイベントでこの背景色を削除するにはどうすればよいですか?

33
sat

背景色を透明に設定してみてください:

view.setBackgroundColor(0x00000000);

46
kiki

使用できます

View.setBackgroundColor(Color.TRANSPARENT);

または

View.setBackgroundColor(0);

覚えてください 画面に表示されるほとんどすべてがビューを拡張します、ボタン、TextView、ImageView、あらゆる種類のレイアウトなど.

34
Zeus

色を透明に設定することに関するすべての回答が機能します技術的に。しかし、これらのアプローチには2つの問題があります。

  1. 最終的には overdraw になります。
  2. より良い方法があります:

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));
    }
}
_

intColorDrawableに変換され、setBackground(Drawable drawable)に渡されます。したがって、背景色を削除する解決策は、次のようにして背景を無効にすることです:

_myView.setBackground(null);
_
6
tir38

View.setBackgroundColor(0);も機能します。これらのゼロをすべて配置する必要はありません。

4
The Berga

いずれかを選択

View.setBackgroundColor(Color.TRANSPARENT);

    or

    View.setBackgroundColor(0x00000000);
0
dileep krishnan