继承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"/>