核心代码
public ImageViewPierce (Context context, AttributeSet attrs, int defStyleAttr) {
super (context, attrs, defStyleAttr);
//设置可以获取到Bitmap
setDrawingCacheEnabled (true);
}
public boolean onTouchEvent (MotionEvent event) {
//获取点击坐标的颜色值
int pixel = getBitmap ().getPixel ((int) event.getX (), (int) event.getY ());
//经测试,图片透明区域的颜色值为 0
if (pixel == 0) {
return false;
}
return super.onTouchEvent (event);
}
public Bitmap getBitmap () {
//获取Bitmap
return getDrawingCache ();
}
Demo效果
由于空间博客空间有限,Demo删除了很多编译的东西,用AS编译时会有点耗时,谅解
Demo下载
技术难度 E-
—aixi