在画布上绘制透明文本

时间:2012-05-11 17:26:23

标签: android android-canvas draw transparent

我正在尝试在画布上写一个半透明的文本。我看到画布上写的字符串,但透明度似乎不起作用。这是我的代码:

     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方法。也没用。有什么想法吗?

4 个答案:

答案 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之间更改前两位数字,则可以看到透明变体。