如何加载原始位图,而无需在Android上进行缩放?

时间:2010-10-20 10:53:23

标签: java android bitmap

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

问题是:使用BitmapFactory加载此蒙版导致缩放的Bitmap对象。这样颜色变得有点扭曲。如果我有例如一个带有颜色的实心矩形(155,155,0),它就像(148,158,0),(150,154,0),依此类推。但我需要得到确切的颜色。

那么我如何加载原始位图,而没有任何缩放/压缩/类似的东西?

1 个答案:

答案 0 :(得分:1)

我使用png文件做了类似的事情,该文件存储在R.raw中。用户单击图像,触发其后面的彩色图像的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 
}