Android ImageView点击变暗效果
程序员文章站
2022-04-07 11:03:28
自定义ImageView;
在ImageView中setPressed(boolean pressed)方法返回ImageView是否被选中的状态;当pressed为ture时,...
自定义ImageView;
在ImageView中setPressed(boolean pressed)方法返回ImageView是否被选中的状态;当pressed为ture时,控件被选中;当pressed为false时,控件未被选中;自定义ImageView同过判断pressed的状态改变ImageView图片;
** * Created by minghao_zl on 14-9-17. * 公共的蒙版ImageView(点击变暗效果) */ 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) { updateView(pressed); super.setPressed(pressed); } /** * 根据是否按下去来刷新bg和src * created by minghao.zl at 2014-09-18 * @param pressed */ private void updateView(boolean pressed){ //如果没有点击效果 if( !touchEffect ){ return; }//end if if( pressed ){//点击 /** * 通过设置滤镜来改变图片亮度@minghao */ this.setDrawingCacheEnabled(true); this.setColorFilter( new ColorMatrixColorFilter(BG_PRESSED) ) ; this.getDrawable().setColorFilter( new ColorMatrixColorFilter(BG_PRESSED) ); }else{//未点击 this.setColorFilter( new ColorMatrixColorFilter(BG_NOT_PRESSED) ) ; this.getDrawable().setColorFilter( new ColorMatrixColorFilter(BG_NOT_PRESSED)); } } }
上一篇: Android工具类-类型转换工具
推荐阅读
-
Android 点击ImageButton时有“按下”的效果的实现
-
Android重写ImageView实现图片镜像效果的代码教程
-
Android实现图片点击预览效果(zoom动画)
-
Android点击Button实现切换点击图片效果的示例
-
Android ListView的Item点击效果的定制
-
Android 取消RadioButton点击效果
-
Android开发实现ListView点击展开收起效果示例
-
Android ImageView的selector效果实例详解
-
Android实现带动画效果的可点击展开TextView
-
Android自定义ImageView实现图片缩放滑动,双击放大缩小,多点触控旋转,圆角矩形,圆形和仿刮刮卡效果