17

我有以下可绘制集作为背景:

<?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_bgdecoration1decoration2),但我找不到修改它们大小的方法。我想拥有主要背景,并在其之上根据 dpi 具有不同尺寸的装饰。有没有一种简单的方法可以做到这一点,或者我实际上是否必须为不同的 dpi 设置一堆“装饰”?这不好,我想改用缩放/调整大小选项!

android:width和属性是我想找到的android:height东西,但我知道它不起作用。目前我正在为不同的 DPI 使用不同的版本,但希望它可以更加用户友好。

4

1 回答 1

13

我不知道这些图像如何,但是,例如,您可以制作一个大图像并在项目 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(此处)和 Drawable(此处)类以编程方式进行。您可以使用 3 个可绘制对象构建图层对象,然后使用 setBounds(Rect) 方法在每个可绘制对象上选择正确的大小。

我希望它对你有帮助。

于 2011-09-13T19:30:05.533 回答