這個問題的原因通常是View尚未準備好,
必須等到所有View都讀取完畢,return值才會不等於0。
該如何解決呢?有兩種作法:
一、等讀取完畢再去取值
在Activity覆寫下列函式:
@Override public void onWindowFocusChanged(boolean focus) { super.onWindowFocusChanged(focus); // 在這裡getWidth()或getHeight() }
二、使用ViewTreeObserver().OnPreDrawListener預先讀取數值
mImageView.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { int Height = mImageView.getMeasuredHeight(); int Width = mImageView.getMeasuredWidth(); // 取得寬高 return true; } });
留言列表