尝试使用LayerDrawable(在XML中定义为层列表)将多个形状drawables层叠到另一个上;用作布局的背景。在不使用位图的情况下防止LayeredList中的形状缩放
Android的指南(for LayerList)说:
所有的绘制项目缩放默认情况下,以适应包含视图, 的大小。因此,将图像放置在位置不同的 位置的图层列表中可能会增加视图的大小,并且一些图像的缩放比例适合 。为避免缩放列表中的项目,请在
<item>
元素内使用<bitmap>
元素来指定drawable,并将重力定义为不缩放的东西,如“center”。
我不希望我的形状规模,但我不能确定如何包装他们在正确bitmap
标签:它会产生一个错误,如果我这样做如下:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:src="@drawable/layer_one"
android:gravity="center" />
</item>
<item>
<bitmap
android:src="@drawable/layer_two"
android:gravity="center" />
</item>
<item>
<bitmap
android:src="@drawable/layer_three"
android:gravity="center" />
</item>
<item>
<bitmap
android:src="@drawable/layer_four"
android:gravity="center" />
</item>
</layer-list>
怨:
二进制XML文件行#25:
<bitmap>
需要一个有效的src属性
其中一个可绘图的例子,例如RES /绘制/ layer_one.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/layer_one.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
</shape>
在Android上使用的示例使用图像作为可绘制,而不是XML定义形状(不是说我的错误是特定于这些,而我没有在某个地方犯了一个愚蠢的错误)。任何线索表示感谢,谢谢。
Using drawable resources
,你不能使用XML作为绘制的SRC的处理这问题的答案的状态。我修改了问题的标题,现在问你如何防止形状缩放(从而调整容器视图的大小)而不使用bitmap
,或者我是否被迫使用实际的图像资源?
添加所期望的结果的图像, - 具有与在此之上的规则矩形形状填充或什么,然后分层背景的能力,多个形状可绘(这里有3个椭圆)。左边是理想的,在顶部和左侧偏移是允许的,而右边是好的,在那里所有的形状只是去默认位置:
对不起Waqas,从Android开发人员网站引用时,忘记了反引号,应该读,现在固定“在- 元素使用
元素”。你描述的方法是我开始,但形状规模填补父视图这就是我想要避免:( –
ataulm
2012-04-07 18:32:08
是的,该声明仍然有效使用位图与有效的src属性(不是指xml drawable)在层次列表中可绘制,即使在android的开发人员站点中,他们也会使用实体图像作为示例,您想要制作什么样的图像?您可以将其张贴为图像吗?也许我可以建议您使用其他解决方案 – waqaslam 2012-04-07 18:44:41
当将位图重力设置为“中心”时将无法缩放,因此无效。我希望定义一系列相互重叠的椭圆(大小递减)作为背景(实验,而不是最终的设计:P)将在10分钟内张贴图像 – ataulm 2012-04-07 18:47:43