我想在大多数视图中添加一个按下状态,这样无论背景颜色/可绘制,视图都会变暗,而不为每个视图创建xml选择器。
就像在启动器图标中一样。
如下图所示,当我按下它时,谷歌分析图标会变暗:
答案 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;
}
});
}