我有以下drawable set作为背景:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/base_bg"
android:gravity="bottom" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/decoration1"
android:gravity="top|right"
android:width="25dp"
android:height="25dp" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/decoration2"
android:gravity="top|right"
android:width="25dp"
android:height="25dp"
/>
</item>
</layer-list>
它显示所有位图(base_bg
,decoration1
和decoration2
),但我找不到修改它们大小的方法。我想拥有主要背景,并在其上面根据dpi具有不同尺寸的装饰。有没有一种简单的方法可以做到这一点,或者我真的必须为不同的dpi有一堆“装饰”?这不好,我想改为缩放/调整大小选项!
android:width
和android:height
属性是我想要找到的,但我知道它不起作用。目前我正在为不同的DPI使用不同的版本,但希望它可以更加用户友好。
答案 0 :(得分:10)
我不知道这些图像是怎样的,但是,例如,你可以制作一个大图像并在项目android:drawable字段中使用它,这样图像就会占用项目的大小。
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/base_bg"
android:gravity="bottom" />
</item>
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1">
</item>
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2">
</item>
</layer-list>
其他解决方案可以使用LayerDrawable(here)和Drawable(here)类以编程方式执行。您可以使用3个可绘制对象构造图层对象,然后使用方法setBounds(Rect)在每个Drawable对象上选择正确的大小。
我希望它可以帮到你。