安卓取控件宽高,带不出方法

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));
            }
        });
  ![图片说明](https://img-ask.csdn.net/upload/201903/31/1554018380_214098.png)
      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行当然只能写在回调里面了