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

时间:2012-10-26 10:49:42

标签: android

我从中搜索,同时为android中的textView提供渐变。但是没有得到适当的解决方案。

我有这样的屏幕the text in the image is actually having the gradient

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

1 个答案:

答案 0 :(得分: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);

编辑:

你好@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