我有一个android应用程序在另一个图像上显示一个图像,这样第二个图像的白色是透明的。为此,我使用了两个ImageViews,原始图像被覆盖为bitmap1,图像被透明为bitmap2。当我运行这个函数时,我在setPixel方法中得到一些异常。
这是我的代码:

Bitmap bitmap2 = null;
int width = imViewOverLay.getWidth();
int height = imViewOverLay.getHeight();
for(int x = 0; x < width; x++)
{
    for(int y = 0; y < height; y++)
    {
        if(bitMap1.getPixel(x, y) == Color.WHITE)
        {
            bitmap2.setPixel(x, y, Color.TRANSPARENT);
        }
        else
        {
            bitmap2.setPixel(x, y, bitMap1.getPixel(x, y));
        }
    }
}

imViewOverLay是覆盖图像的ImageView。你知道上面的代码有什么问题吗?

最佳答案

最明显的错误是您没有创建bitmap2-除非您没有发布所有代码。
您声明它并将其设置为null,但在尝试调用bitmap2.setPixel之前不要执行任何其他操作。

10-02 06:51