我有一个图层列表
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="2dp" android:left="2dp" android:bottom="2dp" android:top="2dp">
<bitmap
android:gravity="center"
android:src="@drawable/ic_menu_alert"/>
</item>
<item android:height="10dp" android:width="10dp" android:gravity="right|top">
<shape android:shape="oval">
<size android:height="10dp" android:width="10dp"/>
<solid android:color="@color/navigation_drawer_notification_red_color"/>
</shape>
</item>
</layer-list>
显示此图像
在棒棒糖及以上一切都很好,但在棒棒糖前红圈失去所有尺寸和填充属性,图像看起来像这样
我正在寻找解决方案大约3天但一无所获。我试图制作我自己的工具栏布局并设置为此imagebuuton scaleType =“centerInside”,但它没有帮助。任何人都可以帮忙解决这个问题吗?
提前致谢!
答案 0 :(得分:10)
最好不要提及height
中的width
和layer-list
属性。当你使用它作为drawable时,让我们说一个ImageView( ImageView的宽度和高度将覆盖项目/形状中提到的那个)。
您可以使用top, bottom, left, right
来对齐图层列表中的项目。
注意:项目的高度和宽度属性仅受API 23支持。
这是一个工作示例(在Android 7.0和Android 4.4中测试过):
sample.xml中
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu"
android:left="16dp"
android:right="16dp"
android:gravity="center">
<bitmap
android:src="@drawable/menu_icon" />
</item>
<item
android:top="8dp"
android:left="56dp"
android:right="24dp"
android:bottom="42dp">
<shape android:shape="oval">
<solid android:color="@android:color/holo_red_dark"/>
</shape>
</item>
</layer-list>
main.xml中
<ImageView
android:layout_width="72dp"
android:layout_height="72dp"
android:src="@drawable/sample"
android:scaleType="fitCenter"/>
您还可以使用wrap_content
作为身高和范围。 ImageView中的宽度。
答案 1 :(得分:1)
所以我想出了一个可行的解决方案。我在AAAP
AAL
AAME
AAOI
和/drawable
中有一个可绘制的图层列表。
/drawable-v21
中可绘制的图层列表包含一个可绘制的矢量。 /drawable-v21
中可绘制的图层列表包含.png。它有点挫败了使用矢量drawables的目的,但我不得不这样做才能让它在这个案例中起作用。