# 快速、輕量級自定義圖庫選擇庫(仿微信圖庫選擇界面)

寫過很多的項目,幾乎我接觸的每一個項目都需要用到功能就是圖庫選擇。於是我很久以前就思考是不是可以把對圖庫選擇做一些封裝,然後,我開始對微信的圖庫選擇開始做研究,這纔有了album這個庫的第一個版本,我以後還會對這個庫進行持續的更新。這是我封裝的第一個庫,先上效果圖吧(注意這個不是微信截圖,是軟件真實運行截圖)。

一、圖片展示列表

這裏寫圖片描述
這個界面我原本不打算放到album庫中的,因爲它好像和圖庫並沒有什麼關聯,它只是一個album的使用實例。但是我回憶了一下,我做過的項目,對這樣的圖庫添加和都特別常見,所以我把它也放了進來,這裏點擊每一張圖片可以進入列表全圖查看,點擊對號可以取消。這個界面使用album庫除了實現簡單外,還有一個特點就是不用考慮滑動衝突的問題,這裏我用的是一個解決了滑動衝突的gradview。

    //圖片選擇回調處理
    private void selectImage() {
        //跳轉到自定義圖庫選擇
        if (imageSelect_01.size() >= maxNum + 1) return;
        photoConfigure = new PhotoConfigure();
        photoConfigure.setCamera(true);
        photoConfigure.setNum(maxNum - imageSelect_01.size());
        PhotoWallActivity.openImageSelecter(TestActivity.this, photoConfigure, new PhotoWallActivity.OnHandlerResultCallback() {
            @Override
            public void onHandlerSuccess(List<PhotoBean> resultList) {
                TestActivity.this.resultList.addAll(resultList);
                //返回的選中照片數據集合
                for (PhotoBean url : resultList) {
                    imageSelect_01.add(imageSelect_01.size() - 1, url.getImage_url());
                }
                adapter.notifyDataSetChanged();
            }
        });
    }

這裏是調用album庫的基本使用方法,PhotoConfigure中封裝的是啓動album庫的基本配置信息:是否使用相機、是否單選、需要選擇的圖片數量等。對於回調的處理,都返回到resultList中,在使用的過程中,你只需要對resultList處理即可。

二、手機圖庫選擇列表

這裏寫圖片描述
啓動圖庫選擇後首先進入的是圖庫選擇界面,圖片選擇支持拍照、分相冊選擇、所有圖庫選擇。這裏圖庫加載緩存全都使用glide加載,所以可以獲取媲美微信的圖庫加載流暢度。這個圖庫選擇除了可以這些基本功能外,還有很多對細節的優化。
1.圖片選中後,添加透明灰色蒙版。
這裏寫圖片描述
2.完成按鈕狀態顏色的變化,按鈕爲選擇、選中狀態數量和顏色的不一樣。
3.相冊切換動畫、彈出方式。
這裏寫圖片描述
由於截圖無法展示ablum庫的動畫效果,建議運行後自行體驗。整個項目對圖庫的選中和未選擇狀態都做了緩存。不論你是在那個相冊、或者預覽界面、只要選過這個就會它的狀態進行記錄和保存,這裏的邏輯不難,但是還是挺繁瑣的。

三、圖片輪播。

這裏寫圖片描述
這個界面有很多的手勢操作:
1、左右滑動可以翻頁。
2、點擊圖片,可以隱藏狀態欄、標題欄和下放選擇框。再次點擊圖片可以顯示。動畫效果與微信類似。
3、兩個手指向外滑動,圖片放大,手指向內畫,圖片縮小。
4、如果在圖片放大的狀態下左右滑動,是移動圖片,此時圖片可以向四個方向移動。如果不是在放大狀態,左右滑動翻頁。
5、圖片達到最大或者最小縮放倍數後,分別有瞬間還原的動畫效果。

項目中的圖片輪播和照片牆界面都可以單獨使用,album的狀態欄和標題欄的顏色都可以在color中修改。不受主要項目的影響。這個版本的相機拍照目前還是調用系統相機拍照。最後放上album的下載地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章