我使用Android工作室,我有一个透明背景的图像。每当我点击它它会带我到另一个活动。但即使我点击图像的透明部分,它也会将我带到另一个Activity。 是否有可能使不透明部分可点击(或可触摸)而透明部分不可点击?
答案 0 :(得分:4)
是的,这是可能的,但它比添加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
}
}