0
I電流は、私はonDrawをオーバーライドして、弧を描くカスタムビューを持っています。私はこの円弧内にテキストを描きたい。これを行うには、私はdrawTextOnPathを使用し、この円弧の上部にカーブしたテキストを表示します。しかし、時にはテキストがかなり長いので、複数の行に行こうと思っています。アンドロイド:drawTextOnPath複数行
私は現在、複数の行に上に描画するために、このようなコードを使用: -
textView.getPaint().getTextBounds(s, 0,
s.length(), r);
int yOffset=r.height() + textSpacing;
int textStart=0;
int numberOfLines= (int) (r.width()/arcWidth) + 1;
for (int i=0; i < numberOfLines; i ++) {
canvas.drawTextOnPath(s.substring(textStart, textStart + s.length()/numberOfLines),
childHolder.path, 0, yOffset, paint);
yOffset+=r.height() +textSpacing;
textStart=s.length()/numberOfLines;
}
しかし、これは明らかにテキストがさらにアークの下でどのように広い考慮されていません。 staticlayout/dynamiclayout(テキストが大きく変化する)のようなものを使ってこれを行う方法はありますか?
誰もが利用できる幅
はい、多かれ少なかれ、いくつかの固定幅で 'StaticLayout'を使い、' getLineCount'/'getLineStart' /' getLineEnd'を使用してください。 – pskink
こんにちは、すばらしい返信をありがとう。あなたがそれぞれの新しい行に行くように、私は、アークでそれを描いていますがあるのでそれは長方形のためにあるので、そこに利用できる幅が小さいので、私はstaticlayoutがうまくいくとは思いませんか? – user2486946
ので、あなたの弧の長さを計算し、としてそれを渡す 'StaticLayout CTOR – pskink