安卓:用户界面:线性渐变在使用自定义颜色时无法工作

5

我正在尝试使用Shader和LinearGradient为TextView中的文本添加线性渐变。如果我使用标准颜色如Color.LTGRAY,Color.MAGENTA等,则此方法有效。但是,如果我使用自定义颜色,即从custom_colors.xml中获取颜色,则无法显示渐变。有什么想法可以使自定义颜色也能实现渐变效果吗?

Shader txtShad=new LinearGradient(0, 0, 0, 10, new int[]{R.color.el_amethyst,R.color.el_maroon}, null, TileMode.MIRROR);
textview_dummy.getPaint().setShader(txtShad);

以下是custom_colors.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <color name="el_maroon">#CD2990</color>
  <color name="el_amethyst">#9D6B84</color>
</resources>
1个回答

5

试试这个:

Shader txtShad = new LinearGradient(0, 0, 0, 10, new int[] { getResources().getColor(R.color.el_amethyst), getResources().getColor(R.color.el_maroon) }, null, TileMode.MIRROR);

TL;DR 你需要首先解决颜色资源问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接