Подтвердить что ты не робот

GradientDrawable в коде

Я могу использовать следующий XML просто отлично

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

градиент прекрасно выглядит

Я пытаюсь сделать то же самое, просто используя код (без XML)

int colors[] = { 0xff255779 , 0xff3e7492, 0xffa6c0cd };

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

setBackgroundDrawable(g);

Градиент DOES появляется, но его не то же самое, что тот, что один из XML, я имею в виду, что цвета такие же, но градиент не то же самое, я думаю, что это связано с начальными, средними, конечными цветами в xml

также как добавить штрих

любая помощь будет принята с благодарностью

4b9b3361

Ответ 1

Согласно Документам

Android: угол
Integer. Угол для градиента в градусах. 0 слева направо, 90 находится внизу. Он должен быть кратным 45. По умолчанию 0

но вы используете GradientDrawable.Orientation. TOP_BOTTOM в вашем коде. Вот почему направления градиента различны.

Вы должны использовать GradientDrawable.Orientation. BOTTOM_TOP.