我有层列表

<?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>

显示了这个图像
android - 在棒棒糖前的图层列表中调整大小不正确的项目-LMLPHP
在棒棒糖和以上一切都是好的,但在棒棒糖前红色圆圈失去所有大小和填充属性和图像看起来像这样
android - 在棒棒糖前的图层列表中调整大小不正确的项目-LMLPHP
我找了3天左右的解决办法,什么也没找到。我试图创建自己的工具栏布局,并将其设置为imagebuuton scaletype=“centerinside”,但没有帮助。有人能帮忙解决这个问题吗?
提前谢谢!

最佳答案

最好不要提height中的widthlayer-list属性。当您将其用作可绘制的(比如说imageview)时(imageview的宽度和高度将覆盖item/shape中提到的宽度和高度)。
您可以使用top, bottom, left, right在层列表中对齐项目。
注意:只有API 23才支持项的高度和宽度属性。
下面是一个工作示例(在Android7.0和Android4.4中进行了测试):
示例.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>

主.xml
<ImageView
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:src="@drawable/sample"
        android:scaleType="fitCenter"/>

您也可以在imageview中使用wrap_content表示高度和宽度。
android - 在棒棒糖前的图层列表中调整大小不正确的项目-LMLPHP

07-27 22:25