在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()
,并使用参数来设置TOP
和LEFT
值,但结果相同。我可以做些什么来确保展示位置始终一致,图像top-left
位于(或接近)第一个透明像素?
答案 0 :(得分:0)
如果您只想显示图像,可以在FrameLayout中将它们添加为不同的帧。在xml中,首先声明要显示为透明像素的那个,然后声明一个具有透明像素的那个。