package com.hatai.smartlokey.utils.image; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.ColorMatrixColorFilter; import android.util.AttributeSet; import android.widget.ImageView; /** * Created by administrato on 2017/10/5. */ @SuppressLint("AppCompatCustomView") public class MaskableImageView extends ImageView { private boolean touchEffect = true; public final float[] BG_PRESSED = new float[] { 1, 0, 0, 0, -50, 0, 1, 0, 0, -50, 0, 0, 1, 0, -50, 0, 0, 0, 1, 0 }; public final float[] BG_NOT_PRESSED = new float[] { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }; public MaskableImageView(Context context) { super(context); } public MaskableImageView(Context context, AttributeSet attrs) { super(context, attrs); } public MaskableImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void setPressed(boolean pressed) { System.out.println("setPressed"); updateView(pressed); super.setPressed(pressed); } /** * 根據是否按下去來刷新bg和src */ private void updateView(boolean pressed){ System.out.println("updateView"); //若是沒有點擊效果 if( !touchEffect ){ return; }//end if if( pressed ){//點擊 /** * 經過設置濾鏡來改變圖片亮度 */ this.setDrawingCacheEnabled(true); this.setColorFilter( new ColorMatrixColorFilter(BG_PRESSED) ) ; this.getBackground().setColorFilter( new ColorMatrixColorFilter(BG_PRESSED) ); }else{//未點擊 this.setColorFilter( new ColorMatrixColorFilter(BG_NOT_PRESSED) ) ; this.getBackground().setColorFilter( new ColorMatrixColorFilter(BG_NOT_PRESSED)); } } }