web-dev-qa-db-ja.com

プログラムでTextViewのテキスト領域(高さ/幅)を見つける方法android

EditTextButtonTextViewがあります。ボタンをクリックすると、textviewはedittextで記述されたテキストを表示します。テキストによって占有されているテキストビューのサイズを見つけることは可能ですか?つまり、「abcde」のように5文字の場合、「abcde」のように5文字の場合、幅はどのようになりますか?

19
BST Kaal
Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();

または

textView.setText("bla");
textView.measure(0, 0);
textView.getMeasuredWidth();
textView.getMeasuredHeight();
61
pigeongram

これを試してください:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView edit = (TextView) findViewById(R.id.edit);
    edit.setTextSize(20);       
    edit.setText("Hello, world");       
    edit.measure(0, 0);
    int width = edit.getMeasuredWidth();
    Log.w("width", width.toString());
}

幅を取得する前に、ビュー/ラベル/テキスト編集を測定する必要があります。これが機能しない場合はお知らせください。

10
Iosif

この方法を試してください。これが問題の解決に役立つことを願っています。

yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
     int width = yourTextView.getMeasuredWidth();
     int height = yourTextView.getMeasuredHeight();

   }
});
2
Haresh Chhelana

幅を教えてください???欲しいですか ?

TextViewメソッドgetWidth()は、ビューの幅をピクセル単位で示します

TextView textView = (TextView)findViewById(R.id.textview);
textView.getWidth(); //width of your view, in pixels 
2
MilapTank
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() *  txt.getLineHeight();
int width = txt.getWidth();
1
Monir Khlaf

まあ、私はこのコードをSwift4構文に変換していませんが、ロジックは同じままです。これは、Xamarin.ios(C#)の拡張メソッドです。

高さを計算するには

 public static nfloat GetEstimateHeight(this UITextView textView, UIView View)
    {
        var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        return estimatedSize.Height;
    }

幅を計算するには

    public static nfloat GetEstimateWidth(this UITextView textView, UIView View)
    {
        var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        return estimatedSize.Width;
    }

Swiftで機能するここでのロジックは

var size = new CoreGraphics.CGSize(View.Frame.Width, height: float.PositiveInfinity);
        var estimatedSize = textView.SizeThatFits(size);
        var textViewFinalHeight = estimatedSize.Height;
0
Shanu Singh