4

我正在使用 LayerDrawable 将小点位图(“热点”)动态放置在大位图图像上。索引 0 处的图层包含大图像。图像上点的位置是根据大图像的百分比指定给我的。例如,我可能有一个热点,它应该位于大型基础图像左侧的 50% 和顶部的 75%。为了将点定位在图像的正确部分,我使用

setLayerInset(layer, leftOffset, topOffset, rightOffset, bottomOffset)

并根据包含 LayerDrawable 的 ImageView 的宽度和高度计算偏移量。我很高兴计算是正确的,并且正在检索正确的高度和宽度,并希望正确显示点,但事实并非如此。点沿 Y 轴倾斜,并且它们的位置不正确(太高且向左太远)。有没有人遇到过类似的问题并找到了解决方案?

4

1 回答 1

12

我花了一天半的时间来解决这个问题,试图弄明白这些数字,这就是我发现的:

在我正在处理的情况下,第一层包含 BitmapDrawable 并且我正在为后续层设置插图,调用中的偏移量:

setLayerInset(层,leftOffset,topOffset,rightOffset,bottomOffset)

相对于第一层中位图的尺寸的,即使这些尺寸大于放置 DrawableLayer 的视图(例如,当视图自动重新调整位图尺寸时)。

离奇和出乎意料,但却是真实的。希望这可以节省一些时间。

于 2013-03-22T11:10:21.893 回答