2011-12-15 17 views
9

que tienen un gradiente me gusta mucho, pero lo creé usando dibujable XML:¿Cómo guardar, exportar o convertir un Android XML Drawable como un archivo de imagen PNG?

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

lo que sería una manera fácil de crear 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 usando un formato #aarrggbb ya que es de entrada alfa/del color (ángulo de 90 grados, los ángulos en general, sería una más).

Gracias por cualquier ayuda.

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

+0

muéstrelo en un diseño vacío y use la instantánea de la imagen de la función Eclipse o ejecute en el dispositivo y siga el mismo proceso para obtener una imagen de alta resolución – ingsaurabh

+0

A menos, me falta algo ... esto tampoco preservaría la transparencia. – TryTryAgain

+0

¿qué tal publicar el código? :) – bluszcz

Respuesta

3

¡Al final fue un trazador de líneas usando ImageMagick!

No puedo creer que no haya pensado en usar ImageMagick antes, ¡¡¡Duh !!!

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

Como referencia, he utilizado esto para crear un archivo de imagen PNG usando mis dibujable valores aarrggbb XML Android ##. ImageMagick FTW !!!

Gracias por la contribución de todos.

3

Use un programa como photoshop o paint.Net: ambos tienen herramientas de degradado y deben permitirle configurar los colores en el mismo formato que tiene allí.

+0

Solo tengo acceso a OSS y SO gratuitos. No he encontrado una manera de lograr esto con GIMP. Una vez más, el gradiente no es el problema, más bien, preservar la transparencia con el gradiente es el problema que estoy enfrentando. – TryTryAgain

+1

Paint.Net es gratuito y conserva la transparencia. – Boude

1

También podría crear una actividad con solo el degradado como fondo y nada más en la pantalla.

Ejecute la aplicación en un emulador o dispositivo, y use DDMS para tomar una captura de pantalla. A continuación, tendrá un PNG bien renderizado para guardar, y puede crear el 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> 
+0

Gracias por la sugerencia @Booger, lamentablemente, que no conservará la transparencia. – TryTryAgain

1

seguirlo:

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í item es el grupo de la vista/opinión de que quiero hacer.

De hecho, uso el mismo fragmento (menos la escritura del archivo) para algunos en la representación de la pantalla y parece preservar la transparencia.

Nota Sobre colores:

Los colores pueden ser especificados en que utilizan valores hexadecimales androide. Hay un byte (8 bits) disponible para cada valor de color en el patrón ARGB (32 bits en total). 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 quería un color blanco opaco con 'Alpha (no transparency) you would use #FFFFFFFF . For Black # FF000000 . For Grey # FF808080 80` da que la mediana de gris.

Usa la aritmética hexadecimal para obtener los valores de los colores decimales.

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

+0

BTW ¿está seguro de que el gimp no puede guardar gradientes con transparencia? Un vistazo rápido a http://docs.gimp.org/en/gimp-concepts-gradients.html sugiere que la creación es posible. El ahorro sigue como una consecuencia natural. –

+0

Gracias, soy bastante nuevo y no sé qué hacer con ese código para crear un archivo .png de mi archivo xml. GIMP puede guardar un degradado con transparencia. Simplemente no sé qué DD y 80 son iguales en cuanto al porcentaje de gradiente AA (alfa) y cómo incorporar un ángulo de 90 grados. – TryTryAgain

+0

Me temo que no hay atajos aquí. Deberías leer un poco. Para los colores aquí hay una cartilla breve y dulce: http://www.w3schools.com/html/html_colors.asp –

Cuestiones relacionadas