如何在android中为TextView提供渐变?

Rah*_*ule 1 android

我搜索从而在android中提供渐变到textView但没有在任何地方获得适当的解决方案.

我有这样的屏幕图像中的文字实际上是渐变的

如果我把图像作为文本,但我有很多具有渐变的textview,那么应用程序可能会很大.所以,如果有人知道解决方案,请发布.谢谢.

Kar*_*amy 9

在这里,

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);
Run Code Online (Sandbox Code Playgroud)

编辑:

嗨@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.
Run Code Online (Sandbox Code Playgroud)

并使用平铺模式作为镜像而不是重复.

我有样品,但可能不完全符合你的要求,

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);
Run Code Online (Sandbox Code Playgroud)

你也可以使用SweepGradient而不是LinearGradient.