【问题标题】:android, background, layer-list and scalable bitmap itemandroid、背景、图层列表和可缩放位图项
【发布时间】:2011-11-08 07:56:25
【问题描述】:

我将以下可绘制设置为背景:

<?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:widthandroid:height 属性是我想找到的,但我知道它不起作用。目前我正在为不同的 DPI 使用不同的版本,但希望它可以更加用户友好。

【问题讨论】:

  • 可能你应该考虑框架布局:然后你可以离散地修改每个视图。

标签: android background bitmap layer-list


【解决方案1】:

我不知道这些图像如何,但是,例如,您可以制作一个大图像并在 item android:drawable 字段中使用它,这样图像就会采用 item 的大小。

<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) 方法在每个可绘制对象上选择正确的大小。

希望对你有帮助。

【讨论】:

  • 层[1].setBounds(4, 4, 4, 4);
猜你喜欢
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多