修改Android中代码中可绘制形状的渐变

时间:2014-09-26 04:58:38

标签: java android button colors gradient

我一直在网上搜索,但仍然没有运气。

问题:

应用程序连接到服务器以检索一些颜色,然后将这些颜色分配给应用程序中的各种控件。

我的问题是我想在xml中使用为Edittext和Button控件定义的样式,但是如果我设置控件的背景颜色,它会删除任何我预定义的样式。

我有一个选择器drawable,具有已定义的样式,用于按下,聚焦和正常

如何从代码中修改选择器中的渐变。

请注意:要求颜色来自服务器(只是十六进制值)

main(JAVA)

int gradientColour1= "comes from server"
int gradientColour2= "also comes from server"

Button btnNext = (Button)findViewById(R.id.btnnext);
btnNext.setBackgroundColor(gradientColor1);

有没有办法可以做这样的事情:(伪)

Gradient grad = new Gradient(gradientColor1,gradientColor2,90);
btnNext.setBackgroundGradient(grad);
btnNext.setBorderRadius(15);

我需要能够通过webrequest获取颜色,而不是在xml中预定义

我必须有办法做到这一点。 如果我不得不取消预先定义的样式,那就没问题了。

我对android / java和Stack Overflow很新,所以请保持温和 提前致谢

1 个答案:

答案 0 :(得分:1)

尝试这样的事情......

public void setGradientColor(int endColor, int startColor) {
    GradientDrawable gradient = new GradientDrawable(Orientation.BOTTOM_TOP, new int[]  {endColor, startColor});
    gradient.setShape(GradientDrawable.RECTANGLE);
    gradient.setCornerRadius(10.f);
    btnNext.setBackgroundDrawable(gradient);
}