Android(安卓)本地图片多选
Matisse
项目地址:zhihu/Matisse
简介::fireworks: A well-designed local image selector for Android
Matisse is a well-designed local image and video selector for Android. You can
- Use it in Activity or Fragment
- Select images including JPEG, PNG, GIF and videos including MPEG, MP4
- Apply different themes, including two built-in themes and custom themes
- Different image loaders
- Define custom filter rules
- More to find out yourself
Zhihu Style | Dracula Style | Preview |
---|---|---|
Download
Gradle:
repositories { jcenter()}dependencies { compile 'com.zhihu.android:matisse:$latest_version'}
Check out Matisse releases to see more unstable versions.
ProGuard
If you use Glide as your image engine, add rules as Glide's README says.
And add extra rule:
-dontwarn com.squareup.picasso.**
If you use Picasso as your image engine, add rules as Picasso's README says.
And add extra rule:
-dontwarn com.bumptech.glide.**
Attention: The above progurad rules are correct.
How do I use Matisse?
Permission
The library requires two permissions:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
So if you are targeting Android 6.0+, you need to handle runtime permission request before next step.
Simple usage snippet
Start MatisseActivity
from current Activity
or Fragment
:
Matisse.from(MainActivity.this) .choose(MimeType.allOf()) .countable(true) .maxSelectable(9) .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) .gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) .thumbnailScale(0.85f) .imageEngine(new GlideEngine()) .forResult(REQUEST_CODE_CHOOSE);
Themes
There are two built-in themes you can use to start MatisseActivity
:
R.style.Matisse_Zhihu
(light mode)R.style.Matisse_Dracula
(dark mode)
And Also you can define your own theme as you wish.
Receive Result
In onActivityResult()
callback of the starting Activity
or Fragment
:
List mSelected;@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) { mSelected = Matisse.obtainResult(data); Log.d("Matisse", "mSelected: " + mSelected); }}
更多相关文章
- android获取mac地址
- Android(安卓)不能生成R文件,gen目录为空
- android 开源项目(城市定位)
- android 开源项目(城市定位)
- Android(安卓)近百个项目的源代码
- Android(安卓)NDK JNI 入门笔记-day01-创建项目并运行
- Android(安卓)video streaming and encoder
- MQTT的学习研究(十五) MQTT 和android整合文章
- Android(安卓)NDK JNI 入门笔记-day01-创建项目并运行