我想获取ImageView的宽度和高度(例如)。但是如果我在 onCreate 事件中使用 getWidth/getHeight 方法,我只得到零。 我应该使用哪个事件来获取视觉元素的真实参数?
最佳答案
当调用 onCreate 时, View 尚未绘制,因此无法在此事件中立即获取 View 大小。 将观察者添加到您需要大小的 View 并等待 onGlobalLayout 事件。绘制 View 后会抛出该事件。
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
(...)
final View = findViewById(R.id.view);
final ViewTreeObserver observer= view.getViewTreeObserver();
observer.addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Log.d("Log", "Height: " + view.getHeight());
Log.d("Log", "Width: " + view.getWidth());
}
});
}
关于java - 哪些 Android 事件 View 元素可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918845/