Android學習之GridView圖片布局適配經驗
阿新 • • 發佈:2018-02-18
statistic style code pop proc lease link csdn ram
開始解說這篇博客之前,我想問一下,當布局相似GridView這樣的多列布局時,我們該怎麽布局,才幹更好的去適配呢?
扣張圖來展示一下
比如這樣的需求,三張圖片均分屏幕
實現方法:
1.切圖固定,比如是1080x1920。
在固定分辨率上非常好計算,也非常好適配。但有個問題。換了不同的分辨率,就須要做不同的適配。針對不同的分辨率即可計算。這樣也能實現。可是太麻煩了,由於各種分辨率的手機層出不窮,適配不止啊。
2.就是本篇博客記敘的重點實現方式。
不用通過固定的大小來設置圖片大小。那麽怎麽做呢?上面已經說過。這樣的需求是將屏幕三分。那麽獲取屏幕寬度。在動態設置圖片寬度為0.3屏幕寬度就能非常好的解決這個適配的問題。那麽寬度攻克了,高度怎麽解決呢?
一般來說。是依據寬高比來確定的,要麽是1:1,要麽是16:9等。寬高比能夠讓設計來確定,這樣就能夠依據獲得的寬度來確定高度,哈哈,這樣不就是全然解決適配問題了麽。
說了這麽多,也該上代碼了
//獲取屏幕寬度
int width = ((Activity) ivImage2.getContext()).getWindowManager().getDefaultDisplay().getWidth();
ViewGroup.LayoutParams params = ivImage2.getLayoutParams();
//設置圖片的相對於屏幕的寬高比
params.width = width/2;
params.height = width/3 ;
ivImage2.setLayoutParams(params);
非常easy吧。在adapter中,實例化ImageView後,調用這幾句代碼,當然寬高比依據詳細需求來說。
另外。xml中ImageView設置寬高都應該為
android:layout_width="wrap_content"
android:layout_height="wrap_content"
這樣整個適配就完畢了,記錄工作中的小成長。謝謝。
Android學習之GridView圖片布局適配經驗