輕量開源相冊 Album

本項目開源地址:github.com/yanzhenjie/…java

  1. Album是一個Android開源相冊,支持單/多選、縮放、預覽、按文件夾查看圖片,後期會考慮加入圖片剪切等操做。android

  2. 開發者不須要擔憂Android6.0的運行時權限,Album已經很是完善的處理過了。git

  3. 支持自定義樣式風格,好比Toolbar顏色、狀態欄顏色等。github

  4. 內置支持了相機,開發者不用擔憂相機的使用問題,Album自動搞定。api

  5. 支持ActivityFragment調用。app

技術交流羣:46523908
圖片上傳推薦使用NoHttp:NoHttp源碼,同時NoHttp詳細文檔已發佈:NoHttp詳細使用文檔ide

Demo效果預覽

選擇圖片
切換文件夾

預覽

若是你想體驗一把,你能夠下載demo的apk來玩玩。this

使用方法

Gradle:spa

compile 'com.yanzhenjie:album:1.0.0'複製代碼

Or Maven:.net

<dependency>
  <groupId>com.yanzhenjie</groupId>
  <artifactId>album</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>複製代碼

Eclipse請下載源碼自行轉換成Library project。

mainifest.xml中須要註冊

<activity android:name="com.yanzhenjie.album.AlbumActivity" android:label="圖庫" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@style/Theme.AppCompat.Light.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden|stateHidden" />複製代碼

其中android:label="xx"中的xx是調起的Activity的標題,你能夠自定義,其它請照抄便可。

須要的權限

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />複製代碼

開發者不須要擔憂Android6.0的運行時權限,Album已經很是完善的處理過了。

如何調用

調起Album的界面:

// 1. 使用默認風格,並指定選擇數量:
// 第一個參數Activity/Fragment; 第二個request_code; 第三個容許選擇照片的數量,不填能夠無限選擇。
// Album.startAlbum(this, ACTIVITY_REQUEST_SELECT_PHOTO, 9);

// 2. 使用默認風格,不指定選擇數量:
// Album.startAlbum(this, ACTIVITY_REQUEST_SELECT_PHOTO); // 第三個參數不填的話,能夠選擇無數個。

// 3. 指定風格,並指定選擇數量,若是不想限制數量傳入Integer.MAX_VALUE;
Album.startAlbum(this, ACTIVITY_REQUEST_SELECT_PHOTO
    , 9                                                         // 指定選擇數量。
    , ContextCompat.getColor(this, R.color.colorPrimary)        // 指定Toolbar的顏色。
    , ContextCompat.getColor(this, R.color.colorPrimaryDark));  // 指定狀態欄的顏色。複製代碼

接受結果,重寫Activity/FragmentonActivityResult()方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 100) {
        if (resultCode == RESULT_OK) { // 判斷是否成功。
            // 拿到用戶選擇的圖片路徑List:
            List<String> pathList = Album.parseResult(data);
        } else if (resultCode == RESULT_CANCELED) { // 用戶取消選擇。
            // 根據須要提示用戶取消了選擇。
        }
    }
}複製代碼

注意點

因爲支持了MaterialDesign,項目中已經引用了Google官方的的support庫:

compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:design:24.2.1'複製代碼

混淆

都是能夠混淆的,若是混淆遇到問題了,請添加以下規則。

-dontwarn com.yanzhenjie.album.**
-keep class com.yanzhenjie.album.**{*;}複製代碼
相關文章
相關標籤/搜索