在 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,然后应用不同颜色的阴影层和文本颜色

问题已解决: 您可以应用更改纹理或渐变应用文本的阴影

  1. 如果您已经在文本上应用了着色器,请先保存着色器。
  2. 第二次让shader为null让shader效果消失那么一点点时间
  3. 然后在文本上应用阴影层
  4. 保存阴影层
  5. 清除阴影层
  6. 应用着色器
  7. 然后保存着色器

现在您有一个应用了自定义颜色的着色器 (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);