투명영역을 제외한 이미지 클릭만 하고 싶을경우
public Region getBitmapRegion(Bitmap bitmap){
int [] pixels = null;
Region rgn = null;
boolean bMask = false;
int height = bitmap.getHeight();
int width = bitmap.getWidth();
try{
pixels = new int[width*height];
bitmap.getPixels(pixels, 0, width, 0, 0, width,height);
rgn = new Region(0,0,0,0);
int start = 0, end = 0;
for(int j =height-1; j >=0; j--){
for(int i=0; i < width; i++){
if(pixels[i+width*j] != 0x00000000){
if(!bMask){
start = i;
end = i+1;
bMask = true;
}else{ end = i; }
}else{
if(bMask){ rgn.op(new Region(start,j,end,j+1), Region.Op.XOR); }
bMask = false;
}
}
if(bMask){ rgn.op(new Region(start,j,end,j+1), Region.Op.XOR); }
bMask = false;
}
}
catch(IllegalArgumentException e){}
catch(ArrayIndexOutOfBoundsException e){}
pixels = null;
return rgn;
}
위처럼 이미지의 영역을 구해서 터치시의 위치로
public boolean isHit(int x, int y){
return mRgn.contains(x, y);
}
Hit 테스트 하시면 됩니다.