-1

ビットマップにテキストを描画しようとしています。テキストが短い場合はすべて正常に機能しますが、テキストが長い場合は画面からはみ出します。

どうすれば修正できますか?これは私のreleaventコードです:

      Canvas canvas = new Canvas(bitmap);
      // new antialised Paint
      Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
      // text color - #3D3D3D
      paint.setColor(Color.WHITE);
      // text size in pixels
      paint.setTextSize((int) (108 * scale));
      // text shadow
      paint.setShadowLayer(1f, 0f, 1f, Color.BLACK);


      // draw text to the Canvas center
      Rect bounds = new Rect();
      paint.getTextBounds(gText, 0, gText.length(), bounds);
      int x = (bitmap.getWidth() - bounds.width())/2;
      int y = (bitmap.getHeight() + bounds.height())/2;

      canvas.drawText(gText, x * scale, y * scale, paint);

編集: 2番目の考えでは、テキストが画面よりも長くなることを確認してから、文字列を分割して後半を新しい行に描画することをお勧めします。私は正しいですか?

4

1 に答える 1

0

paint.measureText

http://developer.android.com/reference/android/graphics/Paint.html#measureText(char[]、int、int)

ビューの幅からテキストの先頭のxオフセットを引いたものと比較してください。必要に応じてテキストを分割します。出来上がり!幸運を

于 2012-06-09T20:07:10.533 に答える