2012-05-27 15 views
7

Ho seguente serie drawable come LinearLayout sfondo:Android gradiente radiale

<?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> 

Secondo il docs, gradientRadius può essere impostato per percentuale della dimensione della finestra/genitore. Sfortunatamente ... non sta funzionando. Il raggio è 0. Cosa sto facendo male? O cosa c'è di sbagliato in Android?

Ho bisogno del gradiente radiale per riempire l'intero schermo. Qual è la soluzione?

+0

lo rimando al layout e anche a textview riempie l'intero schermo, potrei perdere capire cosa ti serve –

+0

Non sono mai stato in grado di ottenere un valore non intero come il gardientRadius. Tutti gli esempi che ho trovato sono in pixel, nemmeno in dip. Come soluzione alternativa, è possibile creare il codice drawable e impostare il raggio dopo aver misurato la vista. – yoah

risposta

5

Se ho capito bene quello che è necessario si deve fare il layout che referded da disegnabile

("match_parent"),

come di seguito:

<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"> 

speranza questo aiuto.

+0

non funziona per me. richiede sempre 1px di larghezza base. quindi il 500% [p] mi dà un raggio di 5px – deej

12

Un po 'in ritardo, ma in base ai documenti, è necessario impostare "50% p", non "50%". (nota la 'p' che indica 'genitore')