texto objeto imagen horizontalmente cs6 cs5 como centro centrar alinear algo android android-drawable layer-list vectordrawable android-vectordrawable

android - objeto - photoshop center object



Cómo centrar el vector dibujable en la lista de capas sin escalar (2)

He estado luchando con el mismo problema. La única forma en que encontré para solucionar esto y evitar el dibujo para escalar fue establecer el tamaño dibujable y usar la gravedad para alinearlo:

<layer-list> <item android:drawable="@color/grid_item_activated"/> <item android:gravity="center" android:width="48dp" android:height="48dp" android:drawable="@drawable/ic_check_white_48dp"/> </layer-list>

¡Espero eso ayude!

Estoy intentando usar un VectorDrawable en una LayerList sin escalar el vector. Por ejemplo:

<layer-list> <item android:drawable="@color/grid_item_activated"/> <item android:gravity="center" android:drawable="@drawable/ic_check_white_48dp"/> </layer-list>

El id ic_check_white_48dp definido como:

<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="48dp" android:height="48dp" android:viewportWidth="24.0" android:viewportHeight="24.0"> <path android:fillColor="#FFFFFFFF" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/> </vector>

El efecto deseado es que el icono de verificación esté centrado en la capa dibujable, sin escala. El problema es que la lista de capas anterior hace que el icono de verificación se escale para adaptarse al tamaño de la capa.

Puedo producir el efecto deseado si reemplazo el vector dibujable con PNG para cada densidad y modifico la lista de capas como tal:

<layer-list> <item android:drawable="@color/grid_item_activated"/> <item> <bitmap android:gravity="center" android:src="@drawable/ic_check_white_48dp"/> </item> </layer-list>

¿Hay alguna manera de hacer esto usando un VectorDrawable ?


Me encontré con el mismo problema tratando de centrar los vectores dibujables en una lista de capas.

Tengo una solución alternativa, no es exactamente lo mismo, pero funciona, debe establecer un tamaño para todo el dibujo y agregar relleno al elemento del vector:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <size android:height="120dp" android:width="120dp"/> <solid android:color="@color/grid_item_activated"/> </shape> </item> <item android:top="24dp" android:bottom="24dp" android:left="24dp" android:right="24dp" android:drawable="@drawable/ic_check_white_48dp"/> </layer-list>

El tamaño de la forma anterior establece el tamaño de todo el dibujo, 120dp en este ejemplo, el relleno en el segundo elemento, 24dp en este ejemplo, centra la imagen vectorial.

No es lo mismo que usar el gravity="center" pero es su forma de usar vectores en API 21 y 22.