如何在Android中检测区域点击进入图像

时间:2018-06-16 03:49:52

标签: java android

检测区域点击图像时出现问题。

我有以下图片:

https://i.stack.imgur.com/fZmq0.jpg

https://i.stack.imgur.com/sb6Va.jpg

https://i.stack.imgur.com/YMwpy.jpg

触摸黄色区域时如何检测?

1 个答案:

答案 0 :(得分:0)

这很容易。你不需要切片。

你要做的就是

  1. 点击活动。
  2. 获取您点击的位置。
  3. 获取位置的颜色。
  4. 检查颜色是否为黄色。
  5. 黄色时做你想做的事。
  6. 看起来黄色不仅仅是一种黄色。所以,你可以做的是有一系列的黄色,并比较所有可能的黄色。

    @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像素),因为有时只检查一个像素可能不起作用。因此,如果方块有黄色,那么你想要实现的事件就可以解决了。

    我希望这有用。