【问题标题】:Fetch the clicked area of image in Android在Android中获取图像的点击区域
【发布时间】:2017-08-10 02:29:53
【问题描述】:

我正在开发一个测验应用程序,并使其适用于将显示在我的 TextView 中的普通问题。此外,我需要向用户显示图像(可能找到两个图像之间的差异或找到隐藏在图像中的字母),为此,用户必须单击图像的某个区域。

如何获取用户点击图片的位置。

【问题讨论】:

标签: java android image android-studio imageview


【解决方案1】:
bool imagesAreEqual(Image i1, Image i2)
{
    if (i1.getHeight() != i2.getHeight()) return false;
    if (i1.getWidth() != i2.getWidth()) return false;

    for (int y = 0; y < i1.getHeight(); ++y)
       for (int x = 0; x < i1.getWidth(); ++x)
            if (i1.getPixel(x, y) != i2.getPixel(x, y)) return false;

    return true;
}

它比较每个像素并返回一个布尔值是否相等。

参考下面的帖子, compare two images in android

【讨论】:

    【解决方案2】:

    你可以试试,

    获取用户点击的位置

    imageView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN){
                    Log.e("Touch coordinates : " + String.valueOf(event.getX()) + "x" + String.valueOf(event.getY()));
                }
                return true;
            }
    });
    

    您可以点击此链接检查图像之间的差异(颜色和像素) https://rosettacode.org/wiki/Percentage_difference_between_imagescompare two images in android

    【讨论】:

    • 对于不同的屏幕尺寸是否也会返回相同的值?
    • 会根据屏幕大小变化
    • 但是按照他的要求,他需要将点击区域与默认图像中的通知区域(答案)进行比较。那么,如果不同屏幕尺寸的值发生变化,他会如何比较呢?
    • 与HTML中的图像映射有关吗?
    • 可能无法比较,不同的图片但是可以得到图片的x、y坐标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多