Android - 将一个图像插入另一个透明像素

时间:2014-06-12 03:35:55

标签: java android image bitmap

在Android中,我试图在FrameLayout中分层两个图像(在本例中为Bitmap对象)。一个图像放在顶部,另一个图像插在该图像的第一个透明像素下面。

目前,我正在尝试使用Bitmap.getPixel()来定位透明像素:

for (int i = 0; i < image_count; i++)
{
    //load page from internal memory
    topImages[i] = getImage("p"+i+".png");
    for (int x = 0; x < topImages[i].getWidth(); x++)
    {
        for (int y = 0; y < topImages[i].getHeight(); y++)
        {
            if (topImages[i].getPixel(x, y) == Color.TRANSPARENT)
            {
                bottomX[i] = x;
                bottomY[i] = y;
                break;
            }
        }
    }
}

然后我使用两个ImageView将图像添加到Frame Layout,并使用这些值来定位下面的图像:

bottomView.setTranslationX(bottomX[position]);
bottomView.setTranslationY(bottomY[position]);

然而,底部图像的放置总是不准确的,通常是向下和向右的边距,对于每个给定的图像是不同的(但总是相同的)。我还尝试了setX()setY(),并使用参数来设置TOPLEFT值,但结果相同。我可以做些什么来确保展示位置始终一致,图像top-left位于(或接近)第一个透明像素?

1 个答案:

答案 0 :(得分:0)

如果您只想显示图像,可以在FrameLayout中将它们添加为不同的帧。在xml中,首先声明要显示为透明像素的那个,然后声明一个具有透明像素的那个。