android - hevvo - hobba
El tamaño incorrecto de los artículos en la lista de capas en pre-piruleta (2)
Así que se me ocurrió una solución viable. Tengo una lista de capas dibujable en /drawable
y /drawable-v21
. La lista de capas dibujable en /drawable-v21
contiene un vector dibujable. La lista de capas drawable in /drawable
contiene un .png. En cierto modo, no funciona el uso de vectores arrastrables, pero tuve que hacer esto para que funcione en este caso.
Tengo una lista de capas
<?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>
que muestra esta imagen
En lollipop y arriba, todo está bien, pero en el círculo rojo previo a la piruleta pierdes todos los atributos de tamaño y relleno, y la imagen se ve así.
Estaba buscando una solución de aproximadamente 3 días y no encontré nada. Estaba tratando de hacer mi propio diseño de barra de herramientas y establecerlo en este imagebuuton scaleType = "centerInside" pero no ayudó. ¿Alguien podría ayudar con este problema?
¡Gracias por adelantado!
Es mejor no mencionar los atributos de height
y width
en layer-list
. Cuando utiliza esto como dibujable, digamos un ImageView ( el ancho y alto de ImageView anulará el mencionado en el elemento / forma ).
Puede usar top, bottom, left, right
para alinear sus artículos en la lista de capas.
Nota: los atributos de alto y ancho del elemento solo son compatibles con la API 23.
Aquí hay un ejemplo de trabajo (Probado en Android 7.0 y 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"/>
También puede usar wrap_content
para alto y ancho en ImageView.