Cómo establecer el tamaño de dibujo en la lista de capas

Estoy teniendo problema con el ajuste de tamaño de dibujable en la lista de capas. Mi XML se parece a esto:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_drawable1"/> <item android:drawable="@drawable/menu_drawable2"/> </layer-list> 

Drawable1 es más grande que Drawable2, así que Drawable2 obtiene redimensionado. ¿Cómo anular esto y establecer el tamaño original de Drawable2? No quiero que cambie de tamaño. He intentado con el ajuste de ancho y altura, pero que no funciona. También los drawables no son realmente bitmaps, son selectos, así que no puedo utilizar el truco del mapa de bits.

Puede utilizar los parámetros android: width y android: height con los valores deseados.

A continuación se muestra la lista de capas y la captura de pantalla. Utilicé el vector dibujable de los iconos materiales de google y el propio selector dibujable.

Original circle.xml forma extraíble tiene 100dp x 100dp tamaño, pero en drawable.xml I anular este valores a 24dp x 24dp por androide: ancho y android: parámetros de altura .

Espero que esta ayuda!

Dibujable.xml

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/circle" android:height="24dp" android:width="24dp"/> <item android:drawable="@drawable/ic_accessibility_black_24dp"/> <item android:drawable="@drawable/ic_http_white_24dp" android:gravity="center" android:top="-3dp" android:height="5dp" android:width="5dp"/> </layer-list> 

Circle.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:innerRadius="20dp" android:shape="oval"> <solid android:color="#CCC" /> <size android:width="100dp" android:height="100dp"/> </shape> </item> </selector> 

captura de pantalla

Parece que tengo la mitad de la solución usando "izquierda" y "derecha", pero aún así, esto no me permite establecer el tamaño exacto de la imagen automáticamente. Ahora mi xml se parece a esto:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_drawable1"/> <item android:drawable="@drawable/menu_drawable2" android:right="150dp"/> </layer-list> 

Espero que esto ayude: –
Puede utilizar un parche nueve para menu_drawable2 . Puede hacer que menu_drawable2 tenga una región transparente alrededor de los bordes. Utilice esta región transparente para especificar la región extensible en el parche nueve.

Puede utilizar etiquetas de inserción para esto. Por ejemplo

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_drawable1"/> <item> <inset android:drawable="@drawable/menu_drawable2" android:insetRight="50dp" android:insetTop="50dp" android:insetLeft="50dp" android:insetBottom="50dp" /> </item> 

Esto creará almohadillas alrededor de usted menu_drawable2 por lo que ganó `t ser escalado. Simplemente establece las dimensiones que necesites.

No sé sus obras o no, pero ¿trató de separar los unos de otros?

algo como esto:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/menu_drawable1"/> </layer-list> <layer-list> <item android:drawable="@drawable/menu_drawable2"/> </layer-list> 

O poner algo más entre ellos como disposición vacía con altura y ancho 0dp.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.