2011-11-23 22 views
5

を使用して背景色でテキストを描画する方法を私は、ビットマップ上で私のテキストを描画していますいくつかのコード(キャンバス)を持っているキャンバス

canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

、それはパスで、このテキストを描画することが可能です(textPath)を教えてください背景色で?

それは私が私のキャンバス上にテキストを描画しています。この機能を使用してテキストのみ

public void drawText(float x,float y ,String Text,Canvas canvas,Paint paint1 ,int count) 
     { 
      float xren =text.measureText(Text.trim()); 

      canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

     } 

を描画するための完全な機能です。このテキストを背景で描画するためにこの関数を変更するには?

+0

あなたに平均テストには色が必要ですか、キャンバスに色が必要ですか? –

+0

mmmmキャンバスには、このイメージ上にdrawTextOnPathを使用して描画したイメージがあります(描画にはこのファンクションが必要です)。このテキスト(背景色は緑色など)を描画したい(例:黒) – Peter

+0

パスを目的の背景色の線で描画し、その上にテキストを描画することはできませんか?これには、パスをちょっと挿入する必要があります。 –

答えて

18

ここでは、おそらく2つのステップが必要です。バックグラウンドの色でパスに沿って線を引いて、指定されたとおりにテキストを描画します。ペイントオブジェクトで線の太さを設定します。また、ペイントのスタイルを変更すると、その効果に役立ちます。さまざまな効果のためにFILLSTROKEまたはFILL_AND_STROKEを試してください。

mpaint.setStyle(Paint.Style.STROKE); 
mpaint.setStrokeWidth(strokeWidth); 

赤い色でパス(長方形)を描画するために追加のサンプル:

  Paint mPaint = new Paint(); 
     mPaint.setColor(Color.RED); 
     Path mPath = new Path(); 
     RectF mRectF = new RectF(20, 20, 240, 240); 
     mPath.addRect(mRectF, Path.Direction.CCW); 
     mPaint.setStrokeWidth(20); 
     mPaint.setStyle(Paint.Style.STROKE); 
     canvas.drawPath(mPath, mPaint); 

次に同じパス(青色)に沿ってテキストを描画:

 mPaint.setColor(Color.BLUE); 
     mPaint.setStrokeWidth(0); 
     mPaint.setStyle(Paint.Style.FILL); 
     mPaint.setTextSize(20); 
     canvas.drawTextOnPath("Draw the text, with origin at (x,y), using the specified paint, along the specified path.", mPath, 0, 5, mPaint); 

results