Как получить ширину textView в android

Это код, который я использую …

<TextView android:id="@+id/textView" android:layout_width="100dp" android:layout_height="40dp" android:text="AMIT KUMAR" /> 

И вот код Java.

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.textView); Log.d("left", textView.getLeft() + " " + textView.getRight() + " " + textView.getWidth()+" "+textView.getHeight()); } 

Для всех выше я получаю вывод 0.

Так как я могу получить ширину и высоту textView.

Solutions Collecting From Web of "Как получить ширину textView в android"

Попробуйте вот так:

 textView.setText("GetHeight"); textView.measure(0, 0); //must call measure! textView.getMeasuredHeight(); //get height textView.getMeasuredWidth(); //get width 

В своем onCreate сделайте это, тогда вы получите фактическую ширину и высоту textView

 textView.postDelayed(new Runnable() { @Override public void run() { textView.invalidate(); float dw = textView.getWidth(); float dh = textView.getHeight(); Log.v("",dw + " - " + dh); } }, 1); 

Если вам нужно получить ширину, высоту перед просмотром, вы можете сделать это

 ViewTreeObserver viewTreeObserver = textView.getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @SuppressLint("NewApi") @SuppressWarnings("deprecation") @Override public void onGlobalLayout() { float dw = textView.getWidth(); float dh = textView.getHeight(); System.out.print(dw +" - "+dh); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { textView.getViewTreeObserver().removeOnGlobalLayoutListener(this); } else { textView.getViewTreeObserver().removeGlobalOnLayoutListener(this); } } });