自定义ImageView按下颜色背景的改变
package com.kun.arno.test.test;
import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.MotionEvent;
/**
* @author Arno
* @date 2018/7/30 0030
* @des 自定义ImageView按下颜色背景的改变
*/
public class PressImageView extends AppCompatImageView {
public PressImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PressImageView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Drawable drawable = getDrawable();
if (drawable != null) {
drawable.mutate().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
Drawable drawableUp = getDrawable();
if (drawableUp != null) {
drawableUp.mutate().clearColorFilter();
}
break;
default:
break;
}
return super.onTouchEvent(event);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
setImageDrawable(null);
}
/**
*
* @param scaleType
*/
@Override
public void setScaleType(ScaleType scaleType) {
// TODO Auto-generated method stub
super.setScaleType(ScaleType.CENTER_CROP);
}
}