studio programacion móviles libros libro desarrollo desarrollar curso aprende aplicaciones android xml

programacion - Android cómo cambiar<item> ancho y alto



manual de programacion android pdf (6)

A diferencia de alguien dicho, también hay atributos de android:width y android:height para <item> . (Gracias a por publicar un ejemplo de eso)
android:width y android:height para drawable son similares a android:layout_width y android:layout_height para View s, con la única diferencia de que no se pueden establecer en match_parent ni wrap_content , pero puede lograr el comportamiento de match_parent configurando el atributo android:gravity a la left|right o al start|end (para igualar el ancho del padre) y top|bottom (para la altura del padre correspondiente).

Desafortunadamente, esos atributos están disponibles solo desde la API 23 .

Sin embargo, considerando el método anterior que sugerí en lugar de match_parent y que los match_parent android:width y android:height están disponibles para el elemento <size> (que se debe colocar dentro de una <shape> ) sin ninguna restricción de API, puede usar una solución simple:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <size android:width="152dp" android:height="152dp"/> <solid android:color="#00FFFFFF"/> </shape> </item> <item> <bitmap android:gravity="left|right|top|bottom" android:src="@mipmap/ic_launcher"/> </item> </layer-list>

La solución anterior aprovecha que tiene un <item> tamaño (con una <shape> transparente) y un <item> tamaño (con un <bitmap> ) que tiene android:gravity configurada a la left|top|right|bottom para hacer coincidir ambas Dimensiones de los padres. Por lo tanto, el tamaño real del <bitmap> será determinado por el del <item> tamaño único en el mismo padre.

Estoy haciendo una <layer-list> para dibujable.

Tengo mi imagen de fondo y quiero que la segunda capa sea más pequeña, pero parece que no importa lo que esté escribiendo dentro de mi android:layer_width y android:layer_height .

El segundo tamaño de capa sigue siendo el mismo.

Aquí está mi xml:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <item android:drawable="@drawable/picuser" android:layout_width="50dp" android:layout_height="50dp" /> <item android:drawable="@drawable/ic_launcher" android:layout_width="10dp" android:layout_height="10dp" /> </layer-list>


Desde el nivel de API 23 y superior, puede establecer el ancho y alto en un elemento

<item android:drawable="@drawable/splash_logo" android:height="100dp" android:width="100dp"/>

NOTA: es android:width lugar de android:layout_width


Espero que esto te ponga en la dirección correcta:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/picuser"/> <item> <bitmap android:src="@drawable/ic_launcher" android:gravity="center" /> </item> </layer-list>

Como puede ver here , <item> no tiene atributos layout_width / layout_height .


Esto es una especie de trabajo, pero funcionó para mí, puedes usar el relleno y hará que el segundo dibujo sea más pequeño.

<item android:drawable="@drawable/circyle"/> <item android:drawable="@drawable/plus" android:top="10dp" android:bottom="10dp" android:right="10dp" android:left="10dp"/>


Intenté mucho, no he encontrado una buena manera de establecer el centro del logotipo solo por el diseño XML. Finalmente encontré una solución como la siguiente:

mToolbar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ImageView imageView = (ImageView)mToolbar.findViewById(R.id.logo); if( mToolbar == null ){ return; } int toolbarWidth = mToolbar.getWidth(); int imageWidth = imageView.getWidth(); imageView.setX((toolbarWidth-imageWidth)/2); } });

layout_toolbar.xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" style="@style/Toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height" android:background="@drawable/toolbar_background" android:focusable="false" app:titleTextAppearance="@style/AppTheme.Toolbar.Title"> <ImageView android:id="@+id/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/toolbar_logo"/> </android.support.v7.widget.Toolbar>


<?xml version="1.0" encoding="utf-8"?> <!-- The android:opacity=”opaque” line — this is critical in preventing a flash of black as your theme transitions. --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"> <!-- The background color, preferably the same as your normal theme --> <item android:drawable="@android:color/white"/> <item android:height="100dp" android:width="100dp" android:gravity="center"> <bitmap android:src="@drawable/ic_launcher_bc_512"/> </item>

Prueba esto