在 TextView 上同时应用不同颜色的渐变和阴影 Android
apply gradient and shadow simultaneously with different colors on TextView Android
我正在尝试在 TextView 上同时应用不同颜色的渐变和阴影。每当我应用渐变(着色器)时,它也会使用与渐变相同的颜色重新绘制阴影,但我需要不同颜色的阴影和渐变。
这是我的一些渐变和阴影代码:
txtHello.setShadowLayer(shadowRadius, tempShadowX,tempShadowY, getShadowColorCode());
radialGradient = new RadialGradient(txtHello.getWidth()/2,txtHello.getHeight()/2,10,color,position,tile_mode);
txtHello.getPaint().setShader(radialGradient)
每当在 textView 上应用着色器时,您无法更改 shadow.its 的颜色,必须先将着色器设置为 null,然后应用不同颜色的阴影层和文本颜色
问题已解决:
您可以应用更改纹理或渐变应用文本的阴影
- 如果您已经在文本上应用了着色器,请先保存着色器。
- 第二次让shader为null让shader效果消失那么一点点时间
- 然后在文本上应用阴影层
- 保存阴影层
- 清除阴影层
- 应用着色器
- 然后保存着色器
现在您有一个应用了自定义颜色的着色器 (gradient/textured) 的文本。
Shader shader = getPaint().getShader();
getPaint().setShader(null);
getPaint().setShadowLayer(20, 10, 10, Color.BLACK);
super.onDraw(canvas);
getPaint().clearShadowLayer();
getPaint().setShader(shader);
super.onDraw(canvas);
我正在尝试在 TextView 上同时应用不同颜色的渐变和阴影。每当我应用渐变(着色器)时,它也会使用与渐变相同的颜色重新绘制阴影,但我需要不同颜色的阴影和渐变。 这是我的一些渐变和阴影代码:
txtHello.setShadowLayer(shadowRadius, tempShadowX,tempShadowY, getShadowColorCode());
radialGradient = new RadialGradient(txtHello.getWidth()/2,txtHello.getHeight()/2,10,color,position,tile_mode);
txtHello.getPaint().setShader(radialGradient)
每当在 textView 上应用着色器时,您无法更改 shadow.its 的颜色,必须先将着色器设置为 null,然后应用不同颜色的阴影层和文本颜色
问题已解决: 您可以应用更改纹理或渐变应用文本的阴影
- 如果您已经在文本上应用了着色器,请先保存着色器。
- 第二次让shader为null让shader效果消失那么一点点时间
- 然后在文本上应用阴影层
- 保存阴影层
- 清除阴影层
- 应用着色器
- 然后保存着色器
现在您有一个应用了自定义颜色的着色器 (gradient/textured) 的文本。
Shader shader = getPaint().getShader();
getPaint().setShader(null);
getPaint().setShadowLayer(20, 10, 10, Color.BLACK);
super.onDraw(canvas);
getPaint().clearShadowLayer();
getPaint().setShader(shader);
super.onDraw(canvas);