本项目开源地址: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.**{*;}复制代码