如何在android中获取textView的宽度
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22834777/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to get the width of textView in android
提问by AMIT
This is the code what i am using...
这是我正在使用的代码...
<TextView
android:id="@+id/textView"
android:layout_width="100dp"
android:layout_height="40dp"
android:text="AMIT KUMAR" />
and here is a java code.
这是一个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());
}
for all above i am getting the output 0.
对于以上所有我得到的输出 0。
so how can i get the width and height of textView.
那么我怎样才能获得textView的宽度和高度。
回答by Lokesh
Try like this:
像这样尝试:
textView.setText("GetHeight");
textView.measure(0, 0); //must call measure!
textView.getMeasuredHeight(); //get height
textView.getMeasuredWidth(); //get width
回答by Chinmoy Debnath
On your onCreatedo this then you will get actual widthand heightof the textView
在您的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);
If you need to get width, height before view drawn then you can do this
如果您需要在绘制视图之前获得宽度、高度,那么您可以执行此操作
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);
}
}
});