gpt4 book ai didi

android - 以编程方式创建的 GradientDrawable : setSize and setGradientCenter methods do not work

转载 作者:行者123 更新时间:2023-11-29 17:03:07 28 4
gpt4 key购买 nike

我正在尝试为我的工具栏设置渐变,但 setSize 和 setGradientCenter 似乎不起作用。

我需要动态创建它,因为渐变的中心和高度会根据我从 CMS 获得的值而变化,但我无法完成这项工作。无论我为大小和中心设置什么值,渐变总是获得整个工具栏的大小,中心是默认值。

我尝试按照文档所述首先调用 mutate(),但没有结果。还尝试了具有相同结果的 setBounds

GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setOrientation(gradientData.getOrientation());
gradientDrawable.setColors(gradientData.getColors());
gradientDrawable.setGradientCenter(gradientData.getCenterX(), gradientData.getCenterY());

toolbar.setBackground(gradientDrawable);

我错过了什么吗?如果重要的话,方向总是线性的

最佳答案

我会把代码留在这里,以防它对其他人有用。

感谢@pskink 示例,它使用 ScaleDrawable 工作。现在我可以为我的工具栏设置一个较小的渐变:

int[] colors = {
Color.RED, Color.YELLOW, Color.RED
};

Drawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors);
final Drawable sd = new ScaleDrawable(gd, Gravity.TOP, 0, 1);
sd.setLevel(7500);

toolbar.setBackground(sd);

关于android - 以编程方式创建的 GradientDrawable : setSize and setGradientCenter methods do not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com