在哪些android事件视图元素可用

时间:2017-08-28 12:20:13

标签: java android

我想获得ImageView的宽度和高度(例如)。但是如果我在onCreate事件中使用getWidth / getHeight方法,我只得到零。 我应该使用哪个事件来获取视觉元素的真实参数?

1 个答案:

答案 0 :(得分:1)

当调用onCreate时,尚未绘制视图,因此无法在此事件中立即获取视图大小。 向您需要大小的视图添加观察者并等待onGlobalLayout事件。在绘制视图后将抛出此事件。

@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());
            }
        });
}