本項目開源地址:github.com/yanzhenjie/…java
Album是一個Android開源相冊,支持單/多選、縮放、預覽、按文件夾查看圖片,後期會考慮加入圖片剪切等操做。android
開發者不須要擔憂Android6.0
的運行時權限,Album
已經很是完善的處理過了。git
支持自定義樣式風格,好比Toolbar顏色、狀態欄顏色等。github
內置支持了相機,開發者不用擔憂相機的使用問題,Album自動搞定。api
支持Activity
、Fragment
調用。app
技術交流羣:46523908
圖片上傳推薦使用NoHttp:NoHttp源碼,同時NoHttp詳細文檔已發佈:NoHttp詳細使用文檔ide
若是你想體驗一把,你能夠下載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。
<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/Fragment
的onActivityResult()
方法:
@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.**{*;}複製代碼