2

私が解決策を見たとき:

ウィジェットでカスタム書体を使用する方法

上記の問題では、ウィジェットでカスタムフォントを使用しています。ソリューションの使用:

public Bitmap buildUpdate(String time) 
  {
    Bitmap myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444);
    Canvas myCanvas = new Canvas(myBitmap);
    Paint paint = new Paint();
    Typeface clock = Typeface.createFromAsset(this.getAssets(),"Clockopia.ttf");
    paint.setAntiAlias(true);
    paint.setSubpixelText(true);
    paint.setTypeface(clock);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.WHITE);
    paint.setTextSize(65);
    paint.setTextAlign(Align.CENTER);
    myCanvas.drawText(time, 80, 60, paint);
    return myBitmap;
  }

質問:文字数に応じて生成されるビットマップの幅と高さを決定するにはどうすればよいですか?

4

1 に答える 1

1

これとともに:

Rect rect = new Rect();
paint.getTextBounds(time, 0, time.length(), rect); // time = your text
int w = rect.width(); // width text
int h = rect.height(); // height of text

これにより、テキストの境界がRectに保存され、Rectを測定できます。

于 2012-12-27T02:34:26.747 に答える