版權聲明:轉載必須註明本文轉自嚴振杰的博客: http://blog.csdn.NET/yanzhenjie1003
仍然轉載自嚴大大的博客,這是一個已經封裝好的圖片選擇庫,as下面直接compile就可以使用了。覺得比較方便,界面也比較美觀,不喜歡系統自帶的圖片選擇庫的可以考慮使用這個庫,下面介紹的比較詳細了,相信大家都能看明白的。
——— 居里夫人
本項目開源地址:https://github.com/yanzhenjie/album
Album是一個Android開源相冊,支持單/多選、縮放、預覽、按文件夾查看圖片,後期會考慮加入圖片剪切等操作。
開發者不需要擔心
Android6.0
的運行時權限,Album
已經非常完善的處理過了。支持自定義樣式風格,比如Toolbar顏色、狀態欄顏色等。
內置支持了相機,開發者不用擔心相機的使用問題,Album自動搞定。
支持
Activity
、Fragment
調用。
Demo效果預覽
如果你想體驗一把,你可以下載demo的apk來玩玩。
使用方法
Gradle:
compile 'com.yanzhenjie:album:1.0.0'11
Or Maven:
<dependency> <groupId>com.yanzhenjie</groupId> <artifactId>album</artifactId> <version>1.0.0</version> <type>pom</type></dependency>123456123456
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" />123456123456
其中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" />123123
開發者不需要擔心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)); // 指定狀態欄的顏色。123456789101112123456789101112
接受結果,重寫Activity/Fragment
的onActivityResult()
方法:
@Overrideprotected 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) { // 用戶取消選擇。 // 根據需要提示用戶取消了選擇。 } } }12345678910111234567891011
注意點
由於支持了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'123123
混淆
都是可以混淆的,如果混淆遇到問題了,請添加如下規則。
-dontwarn com.yanzhenjie.album.** -keep class com.yanzhenjie.album.**{*;}