Java LinearGradient作为结束颜色不透明

Java LinearGradient作为结束颜色不透明,java,android,paint,Java,Android,Paint,我把我的直线半径设置成这样 TextPaint paintText=新的TextPaint(Paint.ANTI_别名_标志); paintText.setColor(Color.WHITE); paintText.setTextSize(大小); paintText.setStyle(Paint.Style.FILL_和_笔划); paintText.setShadowLayer(3f,3f,3f,Color.BLACK); int pL=bitmap.getWidth()/100; int

我把我的直线半径设置成这样

TextPaint paintText=新的TextPaint(Paint.ANTI_别名_标志);
paintText.setColor(Color.WHITE);
paintText.setTextSize(大小);
paintText.setStyle(Paint.Style.FILL_和_笔划);
paintText.setShadowLayer(3f,3f,3f,Color.BLACK);
int pL=bitmap.getWidth()/100;
int pT=bitmap.getHeight()/100;
StaticLayout mTextLayout=新的StaticLayout(
gagTitle,
绘画文本,
newCanvas.getWidth(),
Layout.Alignment.ALIGN_NORMAL,
1.0f,
0.0f,
假);
int dummyHeight=mTextLayout.getHeight();
Shader Shader=新的LinearGradient(0,0,0,(dummyHeight*2),Color.BLACK,Color.TRANSPARENT,Shader.TileMode.MIRROR);
油漆=新油漆();
画图。设置阴影(着色器);
newCanvas.drawRect(新的RectF(0,0,bitmap.getWidth(),dummyHeight),paint);
我不知道为什么,但在生成的渐变结束时,除了透明之外,黑色的亮度更低

结果如下


致以最诚挚的问候

直线半径坐标不是相对的,它们是在画布网格的绝对值中给出的

此外,在您的情况下,也不需要镜像边界

 Shader shader = new LinearGradient(0, 0, 0, dummyHeight, Color.BLACK, Color.TRANSPARENT, Shader.TileMode.CLAMP);

着色器指定dummyHeight*2,但您的rect只是dummyHeight,因此显示的是渐变的一半。