2015-04-29 9 views
5

Mam następujące xml dla GradientDrawable. Jak programowo zmienić kąt?Programowo zmienny kąt nachylenia GradientDrawable

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient android:type="linear" 
     android:angle="45" 
     android:startColor="#FF0000" 
     android:endColor="#00FF00" /> 
</shape> 
+0

GradientDrawable ma setOrientation (orientacja GradientDrawable.Orientation) Ja nie wiem, czy to własnych potrzeb? –

Odpowiedz

6

GradientDrawable ma metodę o nazwie: .setOrientation(GradientDrawable.Orientation orientation), można zmienić orientację gradientu z tym. Musisz nadpisać XML jako GradientDrawable.

+0

Ma tylko bardzo konkretne wartości stałe, podczas gdy "kąt" jest tak naprawdę zmienną, którą można ustawić w dowolnym stopniu, nie? –

+0

Nie sądzę, aby GradientDrawable Providers setAngle(), więc nie można ustawić go programowo. –

+0

Wygląda na to, że kod XML ma ograniczenie, które jest zgodne z ustawieniem setOrientation: https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html#attr_android:angle "Musi być wielokrotnością liczby 45 w zakres [0, 315]. " . https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.Orientation.html. Więc są tak samo, ale z innego powodu z jakiegoś powodu. –

-1

Spróbuj:

GradientDrawable appTheme = new GradientDrawable(GradientDrawable.Orientation.BL_TR, colors);