public class MainActivity extends AppCompatActivity {
private TextView tv;
int w,h;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
tv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
h = tv.getMeasuredHeight();
w = tv.getMeasuredWidth();
tv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
Log.d("tagggli", String.valueOf(h) + "***" + String.valueOf(w));
}
});

Log.d("tagggwai", String.valueOf(w) + "***" + String.valueOf(h));
}
}
我想在27行用这个数值,应该怎么做
你把 Log.d("tagggli", String.valueOf(h) + "***" + String.valueOf(w)); 写在tv.getViewTreeObserver().removeOnGlobalLayoutListener(this); 上面试试 或者使用tv.post(new Runnable() {
@Override
public void run() {
//获取宽高
}
});
不需要addOnGlobalLayoutListener直接tv.post就行了,第27行当然只能写在回调里面了