Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android、背景、图层列表和可缩放位图项_Android_Background_Bitmap_Layer List - Fatal编程技术网

android、背景、图层列表和可缩放位图项

android、背景、图层列表和可缩放位图项,android,background,bitmap,layer-list,Android,Background,Bitmap,Layer List,我有以下可绘制集作为背景: <?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> <i

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

<?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\u bg
decoration1
decoration2
),但我找不到修改它们大小的方法。我想有一个主要的背景和它上面的装饰,将有不同的dpi的基础上的大小。有没有一个简单的方法可以做到这一点,或者我真的需要为不同的dpi做一堆“装饰”吗?这是不好的,我想有规模/调整大小的选项,而不是


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

我不知道这些图像是如何产生的,但是,例如,您可以制作一个大图像,并在项目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)在每个可绘制对象上选择正确的大小


我希望它对你有帮助。

可能你应该考虑一个帧布局:然后你可以离散地修改每一个视图。层[1 ]。StimeDimes(4, 4, 4,4);