我正在尝试在画布上写一个半透明的文本。我看到画布上写的字符串,但透明度似乎不起作用。这是我的代码:
public void onDraw(Canvas canvas, Paint paint) {
paint.setAlpha(1);
paint.setAntiAlias(true);
paint.setTextSize(this.textSize);
paint.setColor(textColor);
canvas.drawText(text,x,y,paint);
Logs.add("onDraw DefaultScoreGottenText currentAlpha = " + this.currentAlpha);
showAnimation(null);
}
已设置alpha属性,但似乎没有任何效果。我甚至尝试创建一个新的Paint对象并将其发送到drawText方法。也没用。有什么想法吗?
答案 0 :(得分:6)
paint.setColor()包含alpha,所以当你调用paint.setColor(textColor)时,你将覆盖你在paint.setAlpha(1)中设置的alpha。尝试使用以下方法同时设置字母和文本颜色:
paint.setColor(Color.argb(alpha, red, green, blue));
答案 1 :(得分:3)
或者只是将alpha 设置为颜色。
答案 2 :(得分:2)
您通过设置颜色值来覆盖alpha。所以只需在设置颜色后设置alpha
paint.setColor(textColor);
paint.setAlpha(1);
请注意,alpha的值介于0到255之间
答案 3 :(得分:0)
设置颜色#00112233
这里00是透明的
11是红色值
22是绿色值
33是蓝色值
如果您在00到FF之间更改前两位数字,则可以看到透明变体。