這個問題的原因通常是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;
}
});

留言列表