2012-05-27 22 views
7

Tengo siguiente conjunto estirable como fondo LinearLayout:degradado radial Android

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <bitmap 
     android:tileMode="repeat" 
     android:dither="true" 
     android:src="@drawable/bg"/> 
    </item> 


    <item> 
     <shape android:shape="rectangle"> 
     <gradient 
      android:startColor="#ffff0000" 
      android:endColor="#ff00ff00" 
      android:centerX="50%" 
      android:centerY="50%" 
      android:gradientRadius="50%" 
      android:type="radial"/> 
     </shape> 
    </item> 
</layer-list> 

De acuerdo con la docs, gradientRadius se puede establecer en porcentaje del tamaño de la ventana/padre. Desafortunadamente ... no está funcionando. El radio es 0. ¿Qué estoy haciendo mal? ¿O qué pasa con Android?

Necesito el degradado radial para llenar toda la pantalla. ¿Cuál es la solución?

+0

lo remito a la disposición y también a la vista de texto llene toda la pantalla, puedo perder de vista lo que necesita –

+0

Nunca pude obtener un valor no entero como el gardientRadius. Todos los ejemplos que encontré están en píxeles, ni siquiera en inmersión. Como solución alternativa, puede crear el dibujo en código y establecer el radio después de medir la vista. – yoah

Respuesta

5

Si entiendo bien lo que es necesario que tiene que hacer el diseño, que referded por dibujable

("match_parent"),

de la siguiente manera:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/"your drawable xml name"> 

esperanza esta ayuda.

+0

no funciona para mí. siempre toma 1px de ancho de base. así que 500% [p] me da 5px de radio – deej

12

Un poco tarde, pero según los documentos, debe establecer "50% p", no "50%". (Observe la 'p' que indica 'padre')