代码中的GradientDrawable

Mon*_*nty 19 android

我可以使用以下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>
Run Code Online (Sandbox Code Playgroud)

渐变很好

我正在尝试使用代码(没有XML)做同样的事情

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

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

setBackgroundDrawable(g);

渐变DOES出现但它与XML中的那个不一样,我的意思是颜色相同但渐变不相同,我认为它与xml中的开始,中间,结束颜色有关

我该如何添加一个笔画

任何帮助将不胜感激

woo*_*shy 6

根据文件

android:angle
整数.渐变的角度,以度为单位.0从左到右,90从下到上.它必须是45的倍数.默认值为0


但您正在使用GradientDrawable.Orientation.代码中的TOP_BOTTOM.这就是梯度方向不同的原因

您应该使用GradientDrawable.Orientation.而是BOTTOM_TOP.