0
我从画布上的.png文件绘制了5个位图 - 头部,身体和两条胳膊和腿。Android位图OnTouch问题
如何检测OnTouch上触摸了哪些触摸?而且,更具体地说,我可以检测OnTouch是否在触摸的身体部位的实际形状内?
我的意思是,显然,.png本身是矩形的,但Android知道,或者我可以告诉它,忽略图像中的透明度?
我从画布上的.png文件绘制了5个位图 - 头部,身体和两条胳膊和腿。Android位图OnTouch问题
如何检测OnTouch上触摸了哪些触摸?而且,更具体地说,我可以检测OnTouch是否在触摸的身体部位的实际形状内?
我的意思是,显然,.png本身是矩形的,但Android知道,或者我可以告诉它,忽略图像中的透明度?
您可以获得所触摸像素的颜色,并将其与背景中像素的颜色进行比较。
编辑:好吧,忽略这一点,你不能获得画布上的像素的颜色,所以取而代之,获取触摸的x,y,检查是否有任何身体部位图像已被触摸,如果因此,从触摸x,y中取出图像的x,y,然后获取应该是透明或彩色的图像像素。
public boolean onTouchEvent(MotionEvent event)
{
int x = (int) event.getX();
int y = (int) event.getY();
int offsetx, offsety;
for(int i = 0;i<NUM_OF_BODY_PARTS;i++)
{
if(bodyPartRect[i].intersects(x,y,x+1,y+1))
{
offsetx = x - bodyPartRect[i].left;
offsety = y - bodyPartRect[i].top;
if(bodyPartBMP[i].getPixel(offsetx,offsety) == TRANSPARENT)
{
//whatever
}
}
}
}
好主意,我从来没有想过这是可能的。我将不得不谷歌如何a)发现什么像素被按下和b)找出它是什么颜色,但。但非常感谢这个想法。 – JimBadger 2010-11-28 17:51:34