我试图将可绘制的图像居中,并在两侧使用一些填充作为闪屏徽标。问题是,如果我使用gravity
,它要么在整个屏幕上拉伸,要么忽略任何填充。
<?xml version="1.0" encoding="utf-8"?>
<item
android:drawable="@color/grey_3"/>
<item android:gravity="top|center_horizontal|center_vertical" android:drawable="@drawable/zc_logo_r"
android:top="100dp"
android:left="200dp"
android:right="200dp"
android:layout_margin="100dp"
>
</item>
我尝试在SO上使用位图android:gravity="fill_horizontal"
和其他各种建议,结果相同。
如何在xml中缩放和居中图像?
答案 0 :(得分:5)
对于任何可能遇到此问题的人,我最终通过更改为hdpi,mdpi,xhpi,xxhpi和xxxhdpi文件夹中的方形图像来解决此问题。 而不是试图调整太大而扭曲它的矩形图像。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:drawable="@color/grey_3"/>
<item android:gravity="center">
<bitmap
android:src="@drawable/splash_logo"/>
</item>
</layer-list>
答案 1 :(得分:0)
将可绘制图像转换为九个补丁可能最容易。
您遇到的问题是图层列表没有内在的大小概念。将边界放置在容器内时设置边界。 xml属性在编译时设置,因此很难在xml drawable中获取动态值。
如果你可以使用ImageView,那么你可以在src属性中设置你的drawable,并使用padding,margin和scaleType来控制drawable缩放的位置。