代码如下:
//参数imageview 就是你要改变的图片对象 brightness就是亮度了。 面前测试 0就是不改变 恢复亮度,50 相对来说的效果面前感觉最好。
public void changeLight(ImageView imageView, int brightness) {
ColorMatrix cMatrix = new ColorMatrix();
cMatrix.set(new float[] { 1, 0, 0, 0, brightness, 0, 1, 0, 0,
brightness,// 改变亮度
0, 0, 1, 0, brightness, 0, 0, 0, 1, 0 });
imageView.setColorFilter(new ColorMatrixColorFilter(cMatrix));
}
由于我们程序的限制:在适配器中实现了ImageView的onTouchListener 方法。
public OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
GroupHolder holder = (GroupHolder) view.getTag();
//onclick
break;
case MotionEvent.ACTION_DOWN:
changeLight(view, -50);
break;
case MotionEvent.ACTION_MOVE:
// changeLight(view, 0);
break;
case MotionEvent.ACTION_CANCEL:
changeLight(view, 0);
break;
default:
break;
}
return true;
}
};
这段代码就可以 当用户按下去的时候 图片变暗,松开时变亮,如果你需要按下时 执行点击事件的方法 可以写在ACTION_UP里面onclick处执行。