最佳答案
这很容易。您不需要将其切片。
你要做的是
- 点击事件。
- 获取您点击的位置。
- 获取位置的颜色。
- 检查颜色是否为黄色。
- 当它是黄色的时候,做你想做的事。
看来黄色不仅仅是一种黄色。因此,您可以做的是获得一系列黄色并比较所有可能的黄色。
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
float x = event.getX();
float y = event.getY();
if(getColourOfThePixel(x, y)){
// DO SOMETHING
}
}
return super.onTouchEvent(event);
}
public boolean getColourOfThePixel(float x, float y){
int colorXY = mBitmap.getPixel(rangeX, rangeY);
int r = Color.red(colorXY);
int g = Color.green(colorXY);
int b = Color.blue(colorXY);
if (isYellow(r, g, b)) {
return true;
}
return false;
}
public boolean isYellow(int r, int g, int b){
// CHECK THE RANGE OF YELLOW COLOUR
}
为了确保这一点,你最好有+-x、y范围(比如一个正方形,也许+-20像素),因为有时只检查一个像素可能不起作用。因此,如果方 block 是黄色,那么您想要实现的事件就会成功。
希望这对您有所帮助。
关于java - 如何检测Android中点击图像的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50884780/