您的位置:首页 > 其它

不用Drawable来实现Imageview的点击效果

2017-07-14 14:48 323 查看
继承ImageView,监听OnTouchListener的事件,动态设置setColorFilter
public class ClickImageView extends AppCompatImageView {

public ClickImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}

public ClickImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public ClickImageView(Context context) {
super(context);
init();
}

private void init() {
setOnTouchListener(onTouchListener);
}

private OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
setColorFilter(null);
break;
case MotionEvent.ACTION_DOWN:
changeLight();
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_CANCEL:
setColorFilter(null);
break;
default:
break;
}
return false;
}
};

private void changeLight() {
int brightness = -80;
ColorMatrix matrix = new ColorMatrix();
matrix.set(new float[]{1, 0, 0, 0, brightness, 0, 1, 0, 0,
brightness, 0, 0, 1, 0, brightness, 0, 0, 0, 1, 0});
setColorFilter(new ColorMatrixColorFilter(matrix));
}
}
布局文件
<包名.clickimageview android:id="@+id/iv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_img"/>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: