# PhotoPicker-1
**Repository Path**: chen3441251/PhotoPicker-1
## Basic Information
- **Project Name**: PhotoPicker-1
- **Description**: Image Picker like Wechat. 微信ui版的PhotoPicker
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-26
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 微信ui版的PhotoPicker
[](https://jitpack.io/#glassLake/PhotoPicker)
本项目fork 自[photoPicker](https://github.com/donglua/PhotoPicker)
参考微信的图片选择ui,对原项目photoPicker进行改写。
标题栏:去除难用的toolbar,改成自定义的titlebar。高度44dp,标题居中,颜色引用activity主题设置colorPrimary.可以自己设置.
底部弹出框:原项目两边有间距,现改成铺满屏幕宽度弹出
默认图片更改成黑灰色背景,让滑动时图片闪动不会那么突兀
图片item再加一层蒙版,未选择状态时,由中间向上下浅黑透明渐变,选择状态下,颜色变黑。
选择框: 未选状态下由原来的不透明变成透明,选中状态时图标颜色使用微信的绿色。
demo apk:见项目根目录下demo.apk
# 更新:
1.0.1:
将图片选择后显示的组件封装了一下,提供了最简化使用的api
该组件既可以用于图片选择后的显示,也可以用于单纯的多图显示,只要设置类型就行
1.0.2
单纯显示图片时,由原来的4列改成3列
修复图片预览时删到最后一张时的数组角标越界bug
---
# 效果图

文件夹切换:底部弹窗

图片预览:

封装好的图片显示组件:(上方是图片选择,下面是只显示图片的组件)

---
# Usage
### gradle
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.glassLake:PhotoPicker:1.0.2'
}
## 使用完全封装好的组件
xml:
```
```
选择图片并显示图片:
```
recyclerView = (MultiPickResultView) findViewById(R.id.recycler_view);
recyclerView.init(this,MultiPickResultView.ACTION_SELECT,null);
//onActivityResult里一行代码回调
recyclerView.onActivityResult(requestCode,resultCode,data);
```
只显示图片
```
//可以初始化时传入地址
recyclerViewShowOnly.init(this,MultiPickResultView.ACTION_ONLY_SHOW,pathslook);
//也可以后续设置地址:
recyclerViewShowOnly.showPics(pathslook);
```
## 不使用显示组件,只使用选择图片的功能
### Pick Photo
```java
PhotoPickUtils.startPick(this);
```
###
### onActivityResult
```java
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
PhotoPickUtils.onActivityResult(requestCode, resultCode, data, new PhotoPickUtils.PickHandler() {
@Override
public void onPickSuccess(ArrayList photos) {//已经预先做了null或size为0的判断
}
@Override
public void onPickFail(String error) {
Toast.makeText(MainActivity.this,error,Toast.LENGTH_LONG).show();
}
@Override
public void onCancle() {
Toast.makeText(MainActivity.this,"取消选择",Toast.LENGTH_LONG).show();
}
});
```
### manifest
```xml
...
```
### Custom style
```xml
```
## Proguard
```
# Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
# nineoldandroids
-keep interface com.nineoldandroids.view.** { *; }
-dontwarn com.nineoldandroids.**
-keep class com.nineoldandroids.** { *; }
# support-v7-appcompat
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }
-keep public class * extends android.support.v4.view.ActionProvider {
public (android.content.Context);
}
# support-design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
```
---
# Thanks
[Photopicker](https://github.com/donglua/PhotoPicker)