1
我想以编程方式呈现TextView
的边缘褪色。通过哪种模式,我可以创建一个真正的alpha梯度?PorterDuff.Mode等效于边缘褪色
一个真正的边缘衰落应顺利地从1.0
减少透明度(没有覆盖梯度劈)至0.0
使得顶视图淡出到背景图。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int y = 0;
int height = 300;
int width = getWidth();
LinearGradient shader = new LinearGradient(width/2, y, width/2, y + height, 0xff000000, 0x0000000, Shader.TileMode.CLAMP);
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XXX)); // Which mode works?
p.setShader(shader);
canvas.drawRect(0, y, width, y + height, p);
}
我试过所有的组合,他们都没有工作?这是不可能的吗?
你有定期无效'TextView'? –
@郑红旺,问题是我无法获得所需的边缘衰落结果。我尝试了所有的'PorterDuff.Mode'选项,它只画黑到透明渐变。我想让文本的不透明度像布局'requireFadingEdge'属性一样淡化为零。 –
'PorterDuff'用于在android官方演示中重叠两个图像。我认为'动画'可以为你做到这一点。 –