Android编程获取控件宽和高的方法总结分析

2019-12-10 19:27:56刘景俊

结果如下:

Android编程获取控件宽和高的方法总结分析

我们再来测试方法三

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  final ImageView imageView = (ImageView) findViewById(R.id.imageview);
  //-----------------------------------------------方法三
  ViewTreeObserver vto2 = imageView.getViewTreeObserver();
  vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
      imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
      textView.append("nn"+imageView.getHeight()+","+imageView.getWidth());
    }
  });
}

输出结果如下:

Android编程获取控件宽和高的方法总结分析

我想这方法二和方法三之间的区别就不用说了吧.

总结:那么需要获取控件的宽高该用那个方法呢?

方法一: 比其他的两个方法多了一次计算,也就是多调用了一次onMeasure()方法,该方法虽然看上去简单,但是如果要目标控件计算耗时比较大的话(如listView等),不建议使用.

方法二,它的回调方法会调用很多次,并且滑动TextView的时候任然会调用,所以不建议使用.

方法三,比较合适.

当然,实际应用的时候需要根据实际情况而定.

希望本文所述对大家Android程序设计有所帮助。



注:相关教程知识阅读请移步到Android开发频道。