我从 while 中搜索为 android.but 中的 textView 提供渐变,但在任何地方都没有得到适当的解决方案。
我有这样的屏幕
如果我将图像作为文本放置,但我有许多具有渐变的文本视图,则应用程序可能会很大。所以如果有人知道解决方案,请发布。谢谢。
我从 while 中搜索为 android.but 中的 textView 提供渐变,但在任何地方都没有得到适当的解决方案。
我有这样的屏幕
如果我将图像作为文本放置,但我有许多具有渐变的文本视图,则应用程序可能会很大。所以如果有人知道解决方案,请发布。谢谢。
来了,
int[] color = {Color.DKGRAY,Color.CYAN};
float[] position = {0, 1};
TileMode tile_mode = TileMode.REPEAT;
LinearGradient lin_grad = new LinearGradient(0, 0, 0, 35,color,position, tile_mode);
Shader shader_gradient = lin_grad;
your_text_view.getPaint().setShader(shader_gradient);
编辑:
嗨@android开发者,
如果你想对视图做一些垂直或任何渐变,
请用,
RadialGradient
代替LinearGradient.
唯一的问题是你必须调整,
x coordinate of the center of the radius.
y coordinate of the center of the radius.
and also,
radius value of the view.
并使用平铺模式作为镜像而不是重复。
我有样品,但可能与您想要的不完全一致,
TileMode tile_mode = TileMode.MIRROR or TileMode.REPEAT;
RadialGradient rad_grad = new RadialGradient(0, 3, 5, Color.BLUE,Color.RED,tile_mode, tile_mode);
Shader shader_gradient = rad_grad;
your_text_view.getPaint().setShader(shader_gradient);
你也可以使用SweepGradient
代替LinearGradient
.