Cómo guardar, exportar o convertir un Android XML Drawable como un archivo de imagen PNG?

Tengo un gradiente que realmente me gusta, pero lo he creado utilizando XML drawable:

<gradient android:startColor="#DD181C18" android:endColor="#809C7D5A" android:angle="90"/> 

¿Cuál sería una manera fácil de crear esto a un png o algo similar?

Lo que realmente estoy buscando es: una herramienta que puede y las instrucciones que utilizan esa herramienta para hacer gradientes utilizando un formato #aarrggbb como es la entrada de alfa / color (ángulo de 90 grados, ángulos en general, sería un plus).

Gracias por cualquier ayuda.

EDIT: D'oh! Me di cuenta de que ImageMagick debería ser capaz de hacer esto. Voy a publicar el código que es mi respuesta en breve, a menos que alguien quiere golpearme a él y recibir toda la recompensa!

Utilice un programa como photoshop o paint.Net – ambos tienen herramientas de degradado y debe permitirle establecer los colores en el mismo formato que tiene allí.

Al final fue una línea usando ImageMagick !

No puedo creer que no pensé en usar ImageMagick antes, Duh !!!

 convert -size 480x84 gradient:'rgba(156, 125, 90, 0.52)'-'rgba(24, 28, 24, 0.86)' tmp.png 

Para referencia, he usado esto para crear un archivo de imagen .png utilizando mi XML de Android ## AARRGGBB valores. ¡ImageMagick FTW !!!

Gracias por la entrada de todos.

También puede crear una actividad con sólo el degradado como fondo y nada más en la pantalla.

Ejecute la aplicación en un emulador o dispositivo y use DDMS para realizar una captura de pantalla. A continuación, tendrá un PNG bien renderizado para guardar, y puede crear cualquier tamaño que desee, variando el tamaño de la pantalla del emulador que está utilizando.

Su XML podría tener este aspecto:

 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/your_gradient"> </LinearLayout> 

Probar esto:

 try { item.setDrawingCacheEnabled(true); Bitmap bmp = item.getDrawingCache(); FileOutputStream out = new FileOutputStream(filename); bmp.compress(Bitmap.CompressFormat.PNG, 90, out); } catch (Exception e) { e.printStackTrace(); } 

Aquí el item es el grupo de vista / vista que quiero procesar.

En realidad, utilizar el mismo fragmento (menos el archivo de escritura) para algunos en la pantalla de renderizado y parece preservar la transparencia.

Nota Sobre los colores:

Los colores se pueden especificar en android usando valores hexadecimales. Un byte (8 bits) está disponible para cada valor de color en el patrón ARGB (total 32 bits). A significa Alpha , R significa Red , G para Green y B para Blue . Cada componente puede tener valores entre (0, 255). Tenga en cuenta que:

 decimal 0 = hex 0x00 decimal 255 = hex 0xFF 

Así que si usted quería un color blanco con opaco 'Alpha (no transparency) you would use #FFFFFFFF . For Black . For Black # FF000000 . For Grey . For Grey # FF808080 . 80 is hex value of decimal 128 and gives you half of full intensity white. so is hex value of decimal 128 and gives you half of full intensity white. so 80 'te da la mediana de Gris.

Utilice la aritmética hexadecimal para obtener valores de sus colores decimales.

AFAIK, el ángulo para un gradiente radial no debe hacer ninguna diferencia. Pruebe todo esto en GIMP o lea los tutoriales de GIMP. Mejor aún usar Photoshop si puede (90 días de versiones de prueba disponibles).

  • Escala Dibujable - ¿setImageLevel determina la escala?
  • Reutilice las imágenes dibujables para diferentes tamaños de pantalla y densidades en Android
  • Establecer el ancho del elemento de Android Drawable?
  • Establecer el fondo de forma transparente en android
  • Configuración de alfa de dibujable a través de xml
  • Brillante degradado con dibujable androide xml
  • Atributos del tema en pre-lollipop Drawable using DrawableCompat?
  • BitmapFactory.decodeResource () devuelve null para la forma definida en xml drawable
  • Error al inflar la clase <unknown>
  • ¿Es posible crear una anchura fija en XML?
  • Uso de recursos extraíbles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.