将按下的状态添加到与启动器图标相同的任何视图

时间:2013-06-24 06:27:38

标签: android android-view

我想在大多数视图中添加一个按下状态,这样无论背景颜色/可绘制,视图都会变暗,而不为每个视图创建xml选择器

就像在启动器图标中一样。

如下图所示,当我按下它时,谷歌分析图标会变暗:

enter image description here

1 个答案:

答案 0 :(得分:1)

我建议使用ColorFilter。这是一个例子:

private ImageView mImageView;
private static final ColorFilter sDarkenFilter = new PorterDuffColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

public void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_layout);

    mImageView = (ImageView) findViewById(R.id.image);
    mImageView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch (View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    mImageView.setColorFilter(sDarkenFilter);
                    return true;
                case MotionEvent.ACTION_UP:
                    mImageView.clearColorFilter();
                    return true;
            }
            return false;
        }
    });
}