指定した中心のx座標とy座標にtextViewを配置する際に問題があります。最初に、textViewでテキストを設定し、ビューの幅と高さでビューを移動しようとしました このリンクから 。
しかし、それは機能しません。他のことを試してみたいと思います。指定したテキストがtextViewで取るサイズを取得する方法があるかどうかを知りたいですか?つまり、テキストとtextSizeがわかっているので、textViewの幅と高さを取得するにはどうすればよいですか?
IPhone開発を知っている人のためのメソッド(NSString)sizeWithFont;
のようなもの。
テキストビューがTVと呼ばれる場合
TV.setText("bla");
TV.measure(0, 0); //must call measure!
TV.getMeasuredHeight(); //get height
TV.getMeasuredWidth(); //get width
これに関する詳細(更新): ビューの幅/高さを取得する方法
_Rect bounds = new Rect();
textView.getPaint().getTextBounds(textView.getText().toString(), 0, textView.getText().length(), bounds);
_
bounds.width()
は、テキストビューのテキストの正確な幅を示します。
何らかの理由で、Midverse Engineerのソリューションは常に正しい結果を提供しません(少なくとも一部のAndroidバージョン)。SherifelKhatibのソリューションは機能しますが、MeadedWidthとHeightを変更する副作用があります。これにより、textViewの位置が正しくない可能性があります。
私の解決策:
width = textView.getPaint().measureText(text);
metrics = textView.getPaint().getFontMetrics();
height = metrics.bottom - metrics.top;