GradientDrawable en código

Puedo utilizar el XML siguiente muy bien

<shape android:shape="rectangle" xmlns..."> <gradient android:startColor="#255779" android:centerColor="#3e7492" android:endColor="#a6c0cd" android:angle="90"/> <stroke android:width="1dp" android:color="#0d202e"/> </shape> 

El gradiente viene muy bien

Estoy tratando de hacer lo mismo con el uso de código (sin XML)

 Int colores [] = {0xff255779, 0xff3e7492, 0xffa6c0cd};

 GradientDrawable g = new GradientDrawable (GradientDrawable.Orientation.TOP_BOTTOM, colores);

 SetBackgroundDrawable (g);

El gradiente viene pero no es lo mismo que el de XML, quiero decir que los colores son iguales, pero gradiente no es lo mismo, creo que tiene que ver con el comienzo, medio, finales de los colores en el xml

También cómo puedo añadir un golpe

cualquier ayuda será apreciada

Según Docs

Androide: ángulo
Entero. El ángulo para el gradiente, en grados. 0 es de izquierda a derecha, 90 es de abajo a arriba . Debe ser un múltiplo de 45. El valor predeterminado es 0

Pero está utilizando GradientDrawable.Orientation. TOP_BOTTOM en su código. Es por eso que las direcciones de gradiente son diferentes

Debe utilizar GradientDrawable.Orientation. BOTTOM_TOP en su lugar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.