0
我想獲取ImageView的寬度和高度(例如)。但是,如果我在onCreate事件中使用getWidth/getHeight方法,我只能得到零。 我應該使用哪個事件來獲取視覺元素的真實參數?有哪些Android事件視圖元素可用
我想獲取ImageView的寬度和高度(例如)。但是,如果我在onCreate事件中使用getWidth/getHeight方法,我只能得到零。 我應該使用哪個事件來獲取視覺元素的真實參數?有哪些Android事件視圖元素可用
當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());
}
});
}