最基礎的問題,你知道嗎?
動態獲取:熟悉安卓View繪製流程的同學知道,在onCreate階段是不能獲取到View的長寬的,因爲還沒有進行繪製,只有當View顯示到前臺的時候纔會進行繪製。恩,就是這樣。所以我們直接在onCreate中getWidth()是不能獲取到的。那怎麼辦呢?我們要用到監聽View繪製的類——ViewTreeObserver,你只需要獲取View的ViewTreeObserver,然後設置一個監聽器,在實現的方法中獲取長寬,等待回調。
@Override
public boolean onPreDraw() {
height = showPicture.getMeasuredHeight();
return true;
}
這就是一個簡單的獲取方式。
那麼如何動態修改呢?這就要依賴於ViewGroup了,這裏不做過多解釋,可以去看看ViewGroup的源碼,以及大神的分析。
首先我們得知道view的parent ViewGroup是什麼,假如是LinearLayout。於是我們需要:
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view.getLayoutParams();
然後就可以對params中的參數進行修改,然後view.setLayoutParams()。
最基礎的你懂了嗎?