public class LineBreakInspectView extends View{
public LineBreakInspectView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int textSize = 12;
Paint paint = new Paint();
paint.setTextSize(textSize);
paint.setColor(Color.WHITE);
String message = "僕は、今日も一日、生きてしまいました。答えも出ないまま。しょうがない、で済ましてよいようなことではない。用な気がするが、そんなこと、気にしてられない。";
int maxWidth = canvas.getWidth();//150pxで改行する。
int lineBreakPoint = Integer.MAX_VALUE;//仮に、最大値を入れておく
int currentIndex = 0;//現在、原文の何文字目まで改行が入るか確認したかを保持する
int linePointY = textSize;//文字を描画するY位置。改行の旅にインクリメントする。
while(lineBreakPoint!=0){
String mesureString=message.substring(currentIndex);
lineBreakPoint=paint.breakText(mesureString, true, maxWidth, null);
if(lineBreakPoint!=0){
String line = message.substring(currentIndex, currentIndex + lineBreakPoint);
canvas.drawText(line, 0, linePointY, paint);
linePointY += textSize;
currentIndex += lineBreakPoint;
}
}
}
}
...。
できるのなら、TextViewを使って組んだ方が良さそうですね。
0 件のコメント:
コメントを投稿