gpt4 book ai didi

java - 如何加载原始位图,而不在 Android 上缩放?

转载 作者:行者123 更新时间:2023-11-30 04:49:14 29 4
gpt4 key购买 nike

我有一个位图文件,用作 View 的掩码。它在白色背景上有多个不同颜色的矩形区域。当用户触摸 View 时,我使用此事件的 X 和 Y 坐标来查找 mask 的颜色(未显示)并根据返回的颜色代码执行操作。

问题是:使用 BitmapFactory 加载此掩码会导致 Bitmap 对象被缩放。这样颜色会有点失真。如果我有例如一个颜色为 (155, 155, 0) 的实心矩形,然后它会像 (148, 158, 0)、(150, 154, 0) 等等。但我需要得到确切的颜色。

那么如何在没有任何缩放/压缩/类似的东西的情况下加载原始位图呢?

最佳答案

我做了类似的事情,使用存储在 R.raw 中的 png 文件。用户点击了一张图片,触发了图片后面的彩色图片的 onTouch 事件。

public static Bitmap loadBitmapFromView(View v)
{
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}

@Override
public boolean onTouch(View v, MotionEvent event)
{
Bitmap b = loadBitmapFromView(v);
long color = b.getPixel((int)event.getX(), (int)event.getY());
//check what the color is, act accordingly
}

关于java - 如何加载原始位图,而不在 Android 上缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3977009/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com