3

キャンバスに半透明のテキストを書き込もうとしています。キャンバスに文字列が書かれているのが見えますが、透明度が機能していないようです。これが私のコードです:

     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

4 に答える 4

8

paint.setColor()にはアルファが含まれているため、paint.setColor(textColor)を呼び出すと、paint.setAlpha(1)で設定したアルファが上書きされます。次のコマンドで、アルファとテキストの色を同時に設定してみてください。

paint.setColor(Color.argb(alpha, red, green, blue));
于 2012-05-11T19:28:21.107 に答える
3

または、色のにアルファを設定します。

于 2014-03-12T16:13:46.450 に答える
3

色の値を設定してアルファをオーバーライドしています。色を設定した後、アルファを設定するだけです

paint.setColor(textColor);
paint.setAlpha(1);

alphaは0から255の間の値を取ることに注意してください

于 2016-03-01T07:43:59.497 に答える
0

色を設定#00112233

ここで00は透明です

11は赤の値です

22は緑の値です

33は青の値です

00からFFまでの最初の2桁を変更すると、透明な変化が見られます。

于 2014-01-31T04:14:36.837 に答える