Android控件宽高获取方法总结与分析

1 下载量 37 浏览量 更新于2024-08-31 收藏 199KB PDF 举报
Android 编程获取控件宽和高的方法总结分析 Android 编程获取控件宽和高是 Android 开发中一个非常重要的知识点,需要开发者们具备相关的操作技巧和方法。本文将详细介绍 Android 编程获取控件宽和高的方法,结合实例形式对比总结并分析了 Android 控件属性的相关操作技巧。 首先,让我们来了解为什么在 onCreate() 里面获取控件的高度是 0。这个问题是很多开发者经常遇到的问题。原因是因为在 onCreate() 里面控件还没有被绘制,因此无法获取到控件的宽和高。只有在控件被绘制完成后,才能获取到控件的宽和高。 那么,如何获取控件的宽和高呢?有多种方法可以实现,下面我们来一一介绍。 1. 使用 getMeasuredWidth() 和 getMeasuredHeight() 方法 这两个方法可以获取控件的宽和高,但是需要在控件被绘制完成后调用,否则将返回 0。 2. 使用 getWidth() 和 getHeight() 方法 这两个方法可以获取控件的宽和高,但是需要在控件被绘制完成后调用,否则将返回 0。 3. 使用 OnGlobalLayoutListener 监听控件的宽和高 可以使用 OnGlobalLayoutListener 监听控件的宽和高,在控件被绘制完成后会回调 onGlobalLayout() 方法,可以在这个方法里面获取控件的宽和高。 4. 使用 ViewTreeObserver 监听控件的宽和高 可以使用 ViewTreeObserver 监听控件的宽和高,在控件被绘制完成后会回调 onGlobalLayout() 方法,可以在这个方法里面获取控件的宽和高。 5. 使用 post() 方法 可以使用 post() 方法来获取控件的宽和高,在控件被绘制完成后会回调 Runnable 任务,可以在这个任务里面获取控件的宽和高。 在实际开发中,我们可以根据需要选择合适的方法来获取控件的宽和高。下面是一个使用 post() 方法获取控件宽和高的示例代码: ```java View view = findViewById(R.id.my_view); view.post(new Runnable() { @Override public void run() { int width = view.getWidth(); int height = view.getHeight(); // todo something with width and height } }); ``` 获取控件的宽和高需要根据实际情况选择合适的方法,需要了解控件的生命周期和绘制过程。只有这样,才能正确地获取控件的宽和高。 最后,需要注意的是,在获取控件的宽和高时,需要考虑控件的padding 和 margin,这些值也需要被考虑在内,否则可能会导致获取的宽和高不准确。