【问题标题】:Android relative layout align center of backgroundAndroid 相对布局对齐背景中心
【发布时间】:2014-08-22 14:38:12
【问题描述】:

我有一个背景图片,就是简单的彩色面板,比如银紫色等,

此背景图片设置为andorid:background of RelativeLayout,其中包含ImageView

我希望该 imageview 的图像资源显示在背景图像的中心。

我尝试alignParentTop 和marginTop 将组合图像定位在中心。

它按预期工作,但在不同设备上尝试时,由于marginTop 是硬编码的,例如 10dp 或 5dp,对齐在不同分辨率的不同设备上看起来会有所不同。

我什至为具有各种 marginTop dp 值的各种配置创建了各种dimens.xml 文件。它仍然只能在特定设备上运行,并且显然不可能在所有设备上运行。所以我需要设置或对齐背景和前景图像,使前景图像居中于背景图像。

注意:我不关心使用 Framelayout。我想要的是 RelativeLayout。

【问题讨论】:

  • 为背景图片试试这个属性 android:layout_centerInParent="true"

标签: android android-layout android-imageview android-relativelayout


【解决方案1】:

在ImageView 和父RelativeLayout 上,删除您拥有的所有填充和边距内容,然后将android:layout_centerInParent="true" 添加到ImageView。如果您知道ImageViewbeforehand 中图像的高度和宽度,请将ImageView 设置为相同的匹配(以dp 为单位)。否则,尝试将 ImageView 的高度和宽度设置为 wrap_content 和可能的 android:adjustViewBounds="true"。

【讨论】:

  • adjustViewBounds的用途?
  • 更多作为预防措施,可能没有必要 - 取决于您将图像(或图像资源)设置为 ImageView 的方式和时间,ImageView 可能不会同时调整它的高度和宽度,它最终可能实际上比图像更大(更高或更宽)。说实话,它可能不会影响明显的居中,因为你最终会得到(同样取决于你如何将图像分配给图像视图),图像周围的空间相等。为 imageview 设置背景颜色,看看它是否真的比你分配的图像大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多