有没有一种很好的方法可以在ImageView上始终定位TextView?

时间:2016-05-30 05:35:52

标签: android android-layout

我有ImageView,如果重要的话,它会占据整个屏幕,我打算用TextView s在其上放置几个标签。我需要这些标签对应图像上的精确位置。

我尝试在xml中设置边距,但由于dp无法在设备之间进行转换,因此无法正常工作。我知道我可以以编程方式将位置设置为屏幕大小的百分比,但这会带来一些问题:

  1. 我不想以编程方式解决这个问题。
  2. 正在保持图像的宽高比,因此在大多数屏幕上会有一点白色空间,因为屏幕与图像的形状不同。此外,该应用程序不是全屏,因此通知栏占用空间。此空白区域和通知栏的空间使得屏幕的百分比与图像的百分比不同。

    如何将TextView定位在ImageView上,使其与每个设备上的相同位置(相对于图像)完全相同?

1 个答案:

答案 0 :(得分:0)

我最终自己搞清楚了:

text.setX((int) (img.getX()+(img.getWidth()*pct)/100)

和y相同,其中text是TextView,img是ImageView,pct是图像的百分比。另一个问题是,这不能在onCreate()中调用。我在onWindowFocusChanged()中调用了它。

为了防止ImageView与Image形成不同的形状,这会破坏此解决方案,您可以这样做:

android:adjustViewBounds="true"

并确保将至少一个维度设置为wrap_content