我正在尝试为我的Android应用创建一个简单的图层列表drawable。当我将drawable设置为ImageView的src时,它未正确绘制:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="20dp">
<shape android:shape="oval">
<solid android:color="@color/dark_gray" />
</shape>
</item>
<item android:left="20dp">
<shape android:shape="oval">
<solid android:color="@color/dark_gray" />
</shape>
</item>
</layer-list>
只有两个椭圆形,彼此有一点偏移。没什么特别的(只是一个测试),但它不起作用。
android:left|right|bottom|top
似乎是个问题。如果我只使用这些命令,则绘制正确的drawable。如果使用两个或更多,则ImageView保持为空。
使用:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="20dp">
<shape android:shape="oval">
<solid android:color="@color/dark_gray" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="@color/dark_gray" />
</shape>
</item>
</layer-list>
不起作用(就像第一个例子一样):
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="..." >
<item android:top="20dp" android:left="20dp">
<shape android:shape="oval">
<solid android:color="@color/dark_gray" />
</shape>
</item>
</layer-list>
这里有什么问题?
编辑: @ Rod_Algonquin 我使用一个非常简单的布局来测试drawable:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="#aaa" >
<ImageView
android:id="@+id/image_logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/testDrawable" >
</ImageView>
</LinearLayout>
似乎android:left|right|bottom|top
参数的数量不是问题的根源,而是使用的具体值。
此drawable工作正常,并且:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="2dp">
<shape android:shape="oval">
<solid android:color="#0f0" />
</shape>
</item>
</layer-list>
这个没有画任何东西(ImageView只是透明的):
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="1dp">
<shape android:shape="oval">
<solid android:color="#0f0" />
</shape>
</item>
</layer-list>
这里唯一的区别是android:top
的价值。 1dp不起作用。 2dp没有任何问题。
有什么想法吗?
答案 0 :(得分:4)
问题是您使用layer-list
drawable作为ImageView的图像资源。 android:src
只接受不是抽签的图像,因此不会给你任何东西。
<强>溶液强>
而不是将其放在android:src
中,而不是放在可以自由使用drawable的background
中。
<ImageView
android:id="@+id/image_logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/testDrawable" >
</ImageView>