【问题标题】:Modify the gradient of a shape drawable in code in Android在Android代码中修改可绘制形状的渐变
【发布时间】:2014-11-21 00:54:51
【问题描述】:

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

问题:

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

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

我有一个可绘制的选择器,其中定义了按下、聚焦和正常的样式

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

请注意:颜色必须来自服务器,(只是一个十六进制值)

主要(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);

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

必须有一种方法可以做到这一点。 如果我必须取消预定义的样式,那很好。

我对 android/java 和 Stack Overflow 还很陌生,所以请温柔一点 在此先感谢

【问题讨论】:

    标签: java android button colors gradient


    【解决方案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);
    }
    

    【讨论】:

    • 完美运行。正是我想要的谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多