通过view.post方法,可以获取得到这个view的高度和宽度
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.my_text);
// 下面这一行log打印的是0,0
Log.d("test", "mTextView width : " + mTextView.getMeasuredWidth() + " - height : " + mTextView.getMeasuredHeight());
mTextView.post(new Runnable() {
@Override
public void run() {
// 下面这一行log打印的是TextView测量后的宽高
Log.d("test", "mTextView width : " + mTextView.getMeasuredWidth() + " - height : " + mTextView.getMeasuredHeight());
}
});
}
1、执行post,此时View是已经开始被meaure
2、由于这个方法是在主线程中才执行的,如果是子线程调用了view.post,post方法并不会执行