李刚
李刚
想要自定义一个 ImageView,让它在按下的时候蒙上一层阴影。 蒙阴影并不复杂,调用 Drawable 的setColorFilter方法即可。监控按下抬起也不复杂,无论是 setOnTouchEventListener 还是override onDispatchTouchEvent 方法,针对 Down Event 加阴影,Up 或 Cancel Event清除阴影即可。 问题是,把这么一个自定义控件放到GridView 里面, 并给 GridView 设置 onItemClickListener 时,你按下这个自定义控件,它会蒙上阴影,但是你抬起的时候,阴影不会消失。原因是这种情况下,自定义控件接收不到Up 或 Cancel Event。不能简单的在接收到 Down Event 的时候返回 true,那样的话会导致很多上层视图无法正常工作。 我的解决办法是,自定义了一个配套的GridView,它在恰当的时候会创建...
@aheadlcx ``` package com.sinaapp.myron.colorfilterimageviewdemo.widget; import android.content.Context; import android.graphics.PorterDuff; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.GridView; public class ColorFilterGridView extends GridView { private int prePosition = -1; public...