我有层列表
<?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”,但没有帮助。有人能帮忙解决这个问题吗?
提前谢谢!
最佳答案
最好不要提height
中的width
和layer-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
表示高度和宽度。