2009-08-14 8 views
22

Realmente aprecio que alguien me ayude a usar cómo usar la forma dibujable como mi fondo xml para mi vista.Usar la forma dibujable como mi fondo xml

Esto es lo que probé: Pero nunca me sale el color. Android siempre me da texto negro sobre fondo blanco, independientemente del atributo de color que pongo.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <stroke android:width="1dip" android:color="#FBBB" /> 
      <solid android:color="#6000"/> 
</shape> 

lo intentara, no funciona

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:color="#6000> 

</shape> 

lo intentara, no funciona

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:background="#6000> 
</shape> 

I Google este es el resultado limitada encontré a tratar.

+0

Sus ejemplos de la forma de trabajo aquí. Probablemente no lo esté configurando correctamente en View –

+4

@ n179911: No empiece sus títulos con las palabras: help in ... Sabemos que está buscando ayuda – Casebash

Respuesta

36

Usted tiene la configuración de mal color, debe especificar los colores 4 bytes, por ejemplo: #ffff8080

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#f0600000"/> 
    <stroke android:width="3dp" android:color="#ffff8080"/> 
    <corners android:radius="3dp" /> 
    <padding android:left="10dp" android:top="10dp" 
     android:right="10dp" android:bottom="10dp" /> 
</shape> 
+0

My 1.5 SDK funciona muy bien con códigos de color de 3 o 4 caracteres –

+10

No está claro cómo 9 personas clasifican esa respuesta como la solución al problema establecido. Ver http://developer.android.com/guide/topics/resources/more-resources.html#Color. ¡NO se requieren colores de 32 bits! Además, publiqué aplicaciones que usan herramientas de forma de color de 24 bits. Por favor, consulte http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape. Finalmente, probé el código "aprobado" - ¡falla! – Tenacious

+1

disculpas - Debería haber dicho "no funciona" - ¡no "falla"! – Tenacious

5

OK - Estoy bastante seguro de que mi problema es el mismo que lo condujo a su pregunta, y que tengo encontró su causa.

El problema son las definiciones de recursos conflictivas (específicamente, nombres de archivos de recursos). Digamos, por ejemplo, que por algún motivo colocas un archivo llamado "drawable_bg.png" en/res/color/en tu proyecto; y olvidé que hiciste esto (o sucedió accidentalmente). Si luego intenta definir un Drawable Shape en su proyecto llamado "res/drawable/dialog_bg.xml" - el PNG (de 'MyLib') tiene prioridad. Como puede tener muchas carpetas de "res" para diferentes DPI, form-factor, SDK, etc., es bastante fácil terminar con una colisión de nombre de archivo. Esto también puede suceder con los proyectos de la biblioteca de Android. Si su proyecto tiene alguna dependencia en proyectos que a su vez tienen recursos, pueden causar conflictos. Como acabo de encontrar hoy, Eclipse puede ocultar o no mostrar una advertencia sobre esto en muchas situaciones.

Cuando esto sucede, puede parecer que el Shake Drawable no se aplica. Como "dialog_bg.png" probablemente no está diseñado para su vista, obtiene resultados inesperados y es fácil confundirse sobre lo que realmente está sucediendo.

La forma más fácil de resolver esto es cambiar el nombre de la forma dibujable en su proyecto. Si el problema es con un recurso (s) en un Proyecto de biblioteca Android, entonces puede haber una solución mejor encontrada aplicando la práctica recomendada como se describe en http://tools.android.com/recent/buildchangesinrevision14.

+0

Muchas gracias, probé todas las opciones locas encontradas pero nada ayudó. Solo los archivos de forma cambiar el nombre me salvó. – Anastasia

3

Parece que hay un par de problemas aquí. La más grande parece ser la idea de que puedes usar una forma como color de texto y eso no parece tener sentido. Puede utilizar un color como fondo de una forma y puede establecer una forma como fondo de la vista, pero no puede establecer una forma como fondo de texto o primer plano.

La otra cosa que parece incorrecta es que en los archivos XML alternativos que probó, faltan las comillas finales alrededor de los valores de color, por lo que no deberían compilarse en absoluto.

3

Usted está dando un color hexadecimal incorrecto attribue. Debería tener ocho dígitos después de #. por ejemplo #00000000

1

probar esto

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<corners 
    android:bottomLeftRadius="5dp" 
    android:bottomRightRadius="5dp" 
    android:radius="0.1dp" 
    android:topLeftRadius="5dp" 
    android:topRightRadius="5dp" /> 

<solid android:color="#Efffff" /> 

<stroke 
    android:width="2dp" 
    android:color="#25aaff" /> 

</shape> 
Cuestiones relacionadas