Android 这些问题
我从画布上的.png文件中绘制了5个位图——一个头部、一个身体和两条胳膊和腿 我怎样才能检测到OnTouch上触碰了哪些?更具体地说,我能检测出OnTouch是否在被触摸身体部位的实际形状范围内吗Android 这些问题,android,bitmap,touch,Android,Bitmap,Touch,我从画布上的.png文件中绘制了5个位图——一个头部、一个身体和两条胳膊和腿 我怎样才能检测到OnTouch上触碰了哪些?更具体地说,我能检测出OnTouch是否在被触摸身体部位的实际形状范围内吗 我的意思是,很明显,.png本身是矩形的,但是安卓知道,或者我可以告诉它,忽略图像中的透明度吗?你可以触摸像素的颜色,并将其与这些颜色的背景上像素的颜色进行比较 编辑:好的,忽略这一点,你无法获得画布上像素的颜色,因此,取而代之的是,获取触摸的x,y,检查是否有任何身体部位图像被触摸过,如果是,从触摸
我的意思是,很明显,.png本身是矩形的,但是安卓知道,或者我可以告诉它,忽略图像中的透明度吗?你可以触摸像素的颜色,并将其与这些颜色的背景上像素的颜色进行比较 编辑:好的,忽略这一点,你无法获得画布上像素的颜色,因此,取而代之的是,获取触摸的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
}
}
}
}
public boolean onTouchEvent(运动事件)
{
int x=(int)event.getX();
int y=(int)event.getY();
int offsetx,offsety;
对于(int i=0;i伟大的想法,我从未想过这是可能的。我将不得不用谷歌搜索如何a)发现按下了什么像素,b)找到它是什么颜色。但非常感谢这个想法。不过,我仍然对任何其他可能的解决方案感兴趣,以进一步拓宽我的知识面。