代码中的GradientDrawable

时间:2010-11-14 12:09:10

标签: 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>

梯度很好地出现

我正在尝试使用代码(没有XML)

做同样的事情
int colors[] = { 0xff255779 , 0xff3e7492, 0xffa6c0cd };

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

setBackgroundDrawable(g);

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

我如何添加笔画

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:6)

根据Docs

  

<强>机器人:角
  整数。渐变的角度,以度为单位。 0从左到右, 90从下到上。它必须是45的倍数。默认值为0


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

您应该使用GradientDrawable.Orientation。 BOTTOM_TOP