Android Layer-List Drawable 有两个项目未正确绘制且尺寸错误
Android Layer-List Drawable with two items not properly drawn and having wrong size
我创建了一个简单的图层列表可绘制对象,我想将其用作指示设备是否在线的天气。 drawable由外圈和内圈组成:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="14dp"
android:height="14dp"
android:gravity="center">
<shape android:shape="oval">
<stroke
android:width="1dp"
android:color="@color/colorLightGray" />
</shape>
</item>
<item
android:width="10dp"
android:height="10dp"
android:gravity="center">
<shape android:shape="oval">
<solid android:color="@color/colorLightGray" />
</shape>
</item>
</layer-list>
在我的布局 xml 中,当我将可绘制对象指定为图像视图的源时,它似乎是正确的:
但是,如果我 运行 设备上的代码,它看起来像这样:
我还必须在我的布局中设置宽度和高度,否则图像根本不会显示。
问题:
- 我需要做什么才能在布局 xml 中使用 widht/height of wrap_content 并在图层列表中配置大小?
try this layerlist drawable:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center">
<shape android:shape="oval">
<size
android:width="14dp"
android:height="14dp" />
<stroke
android:width="1dp"
android:color="@color/colorLightGray" />
</shape>
</item>
<item
android:bottom="3dp"
android:left="3dp"
android:right="3dp"
android:top="3dp">
<shape android:shape="oval">
<size
android:width="10dp"
android:height="10dp" />
<solid android:color="@color/colorLightGray" />
</shape>
</item>
</layer-list>
使用这个:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval">
<solid
android:color="@android:color/transparent"/>
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp"/>
<stroke
android:width="1dp"
android:color="@color/colorLightGray"/>
</shape>
</item>
<item>
<shape
android:shape="oval">
<solid
android:color="@color/colorLightGray"/>
<size
android:width="10dp"
android:height="10dp"/>
</shape>
</item>
</layer-list>
我创建了一个简单的图层列表可绘制对象,我想将其用作指示设备是否在线的天气。 drawable由外圈和内圈组成:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="14dp"
android:height="14dp"
android:gravity="center">
<shape android:shape="oval">
<stroke
android:width="1dp"
android:color="@color/colorLightGray" />
</shape>
</item>
<item
android:width="10dp"
android:height="10dp"
android:gravity="center">
<shape android:shape="oval">
<solid android:color="@color/colorLightGray" />
</shape>
</item>
</layer-list>
在我的布局 xml 中,当我将可绘制对象指定为图像视图的源时,它似乎是正确的:
但是,如果我 运行 设备上的代码,它看起来像这样:
我还必须在我的布局中设置宽度和高度,否则图像根本不会显示。
问题:
- 我需要做什么才能在布局 xml 中使用 widht/height of wrap_content 并在图层列表中配置大小?
try this layerlist drawable:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center">
<shape android:shape="oval">
<size
android:width="14dp"
android:height="14dp" />
<stroke
android:width="1dp"
android:color="@color/colorLightGray" />
</shape>
</item>
<item
android:bottom="3dp"
android:left="3dp"
android:right="3dp"
android:top="3dp">
<shape android:shape="oval">
<size
android:width="10dp"
android:height="10dp" />
<solid android:color="@color/colorLightGray" />
</shape>
</item>
</layer-list>
使用这个:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval">
<solid
android:color="@android:color/transparent"/>
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp"/>
<stroke
android:width="1dp"
android:color="@color/colorLightGray"/>
</shape>
</item>
<item>
<shape
android:shape="oval">
<solid
android:color="@color/colorLightGray"/>
<size
android:width="10dp"
android:height="10dp"/>
</shape>
</item>
</layer-list>