使图像的透明部分不可点击
问题描述:
我使用Android工作室,并且我拥有透明背景的图像。每当我点击它,它会带我到另一个活动。但即使当我点击图像的透明部分时,它也会将我带到其他Activity。 是否有可能使非透明部分可点击(或可触摸)并且透明部分不可点击?使图像的透明部分不可点击
答
是的,这是可能的,但它变得比添加OnClickListener困难得多。
诀窍是使用Touch监听器而不是点击,然后在DOWN或UP事件中找到位置,然后使用一些简单的数学计算出它是否是透明区域(如果设计是简单的),或者做一些更复杂的东西来找出中心的像素值。
new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
If (event.getAction() == MotionEvent.ACTION_DOWN) {
final int x = (int) event.getX();
final int y = (int) event.getY();
//now map the coords we got to the
//bitmap (because of scaling)
ImageView imageView = ((ImageView)v);
Bitmap bitmap =((BitmapDrawable)imageView.getDrawable()).getBitmap();
int pixel = bitmap.getPixel(x,y);
//now check alpha for transparency
int alpha = Color.alpha(pixel);
If (alpha != 0) {
//do whatever you would have done for your click event here
}
}
return true; //we've handled the event
}
}
请显示您所指的图片和/或XML。你有一个自定义的按钮背景? –
你有没有想到这一点,并有一个职位的答案?如果其他人没有足够的帮助你接受他们,你可以发布你自己的答案,但是接受答案是很好的,所以有同样问题的其他人会发现它 –
是的,我通常接受答案,就像我在这里忘了它。你收到的答案确实很好。 ty:D – Iluvpresident