android - Lollipop 前层列表中的项目大小不正确

标签 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

在 lollipop 上一切都很好,但在 pre-lollipop 上红色圆圈失去所有大小和填充属性,图像看起来像这样

enter image description here

我一直在寻找解决方案大约 3 天,但一无所获。我试图制作自己的工具栏布局并设置为此 imagebuuton scaleType="centerInside"但它没有帮助。谁能帮忙解决这个问题?

提前致谢!

最佳答案

最好不要在layer-list中提及heightwidth属性。当您将其用作可绘制对象时,假设是一个 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"/>

您还可以在 ImageView 中使用 wrap_content 作为高度和宽度。

enter image description here

关于android - Lollipop 前层列表中的项目大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610902/

相关文章:

android - 是否可以编写一个 for 循环来将监听器分配给许多具有相同功能但使用最终整数的按钮?

android - 如何在android中将字体设置为textview?

jquery - html - div 内的布局中断

html - Clear inside div A 正在清除 div B 的 float ,它在 div A 之外

android - 正在使用哪个可绘制文件夹?

android - 9-patch 是否删除相同的像素以节省空间?

java - Android Studio 不断导入 import sun.jvm.hotspot.utilities.IntArray

java - 删除字符串中的某些字符,Java

swift - Xcode 的布局问题

android - 以编程方式更改按钮的 drawableLeft