【发布时间】:2014-06-12 03:35:55
【问题描述】:
在 Android 中,我尝试在 FrameLayout 中对两个图像(在本例中为位图对象)进行分层。一张图片放在顶部,另一张图片插入到其下方,位于该图片的第一个透明像素处。
目前,我正在尝试使用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 位于(或接近)第一个透明像素?
【问题讨论】: