2012-03-14 6 views
2

私は、背景画像を持つライブ壁紙にテキストを描画しようとしています。透明にキャンバス上に色を描き、背景の画像を隠さないようにしたいと考えていましたが、何らかの理由でキャンバスにテキストを描画していませんでした。Canvas.drawText()が動作しません

私が間違っていることに関するアイデアはありますか?

paintText = new Paint(); 
paintText.setColor(Color.WHITE); 
paintText.setStyle(Style.FILL); 
paintText.setAntiAlias(true); 
paintText.setTextSize(20); 

canvas.drawColor(Color.TRANSPARENT); 
canvas.drawText(String.valueOf(Points) + " Points", 50, 50, paintText); 
+0

うーん、何Color.WHITE代わりのColor.TRANSPARENTはどうですか? – Coffee

+1

私はColor.WHITEを試して、Color.BLACKにテキストの色を変更しましたが、私が得るのはテキストなしの完全な白い画面です。 – Gatekeeper

+0

@Gatekeeper 'drawText()の後にこの' canvas.restore(); 'を入れてください –

答えて

2

私はあなたがテキストを描画する前に

canvas.drawColor(Color.TRANSPARENT); 

を必要としないと言うでしょう。あなたはそれを試してみましたか?

+0

それだけで何もせずに試してみました。私がcanvas.drawBitmap(bmp、0、0、paint)を使用するかどうかは重要ですか。これのすべての直前ですか?テキストを追加する前にキャンバスに単色を描く必要があるが、ビットマップを覆うチュートリアルがあります。 – Gatekeeper

+0

あなたのキャンバスはイメージビューになっていますか? drawtextメソッドの後にimageviewで.invalidate()を呼び出せますか? – Vossi

+0

私はライブ壁紙の中にいるので、私のキャンバスは私が信じるキャンバスです。キャンバス=新しいキャンバス(); – Gatekeeper

1

更新してコード:

paintText = new Paint(); 
paintText.setColor(Color.WHITE); 
paintText.setStyle(Style.FILL); 
paintText.setAntiAlias(true); 
paintText.setTextSize(20); 
canvas.save(); // 
canvas.drawColor(Color.TRANSPARENT); 
canvas.drawText(String.valueOf(Points) + " Points", 50, 50, paintText); 
canvas.restore(); // 
関連する問題