前棒棒糖

时间:2016-07-27 10:51:38

标签: android layout drawable layer-list

我有一个图层列表

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

显示此图像

image

在棒棒糖及以上一切都很好,但在棒棒糖前红圈失去所有尺寸和填充属性,图像看起来像这样

enter image description here

我正在寻找解决方案大约3天但一无所获。我试图制作我自己的工具栏布局并设置为此imagebuuton scaleType =“centerInside”,但它没有帮助。任何人都可以帮忙解决这个问题吗?

提前致谢!

2 个答案:

答案 0 :(得分:10)

最好不要提及height中的widthlayer-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中的宽度。

enter image description here

答案 1 :(得分:1)

所以我想出了一个可行的解决方案。我在AAAP AAL AAME AAOI /drawable中有一个可绘制的图层列表。 /drawable-v21中可绘制的图层列表包含一个可绘制的矢量。 /drawable-v21中可绘制的图层列表包含.png。它有点挫败了使用矢量drawables的目的,但我不得不这样做才能让它在这个案例中起作用。