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