1. 程式人生 > >Android學習之GridView圖片布局適配經驗

Android學習之GridView圖片布局適配經驗

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圖片布局適配經驗