# 微信ui版的PhotoPicker
# 注: 此项目已转移至本人主账号下:在那里继续更新
[主账号下的PhotoPicker](https://github.com/hss01248/PhotoPicker)
[![](https://jitpack.io/v/glassLake/PhotoPicker.svg)](https://jitpack.io/#glassLake/PhotoPicker)
## 注: 图片选择/拍照->裁剪->压缩 整个流程的操作已经串起到下面的库中
[PhotoOut](https://github.com/hss01248/PhotoOut)
本项目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
---
# 效果图
![all](all.jpg)
文件夹切换:底部弹窗
![popwin](popwin.jpg)
图片预览:
![preview](preview.jpg)
封装好的图片显示组件:(上方是图片选择,下面是只显示图片的组件)
![multview](multview.png)
---
# 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.3'
}
## 使用完全封装好的组件
xml:
```
<me.iwf.photopicker.widget.MultiPickResultView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recycler_view"/>
```
选择图片并显示图片:
```
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(Activity context,boolean showGif,int photoCount,ArrayList<String> photos)
```
###
### 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<String> 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
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
...
>
...
<activity android:name="me.iwf.photopicker.PhotoPickerActivity"
android:theme="@style/customTheme"
/>
<activity android:name="me.iwf.photopicker.PhotoPagerActivity"
android:theme="@style/customTheme"/>
</application>
</manifest>
```
### Custom style
```xml
<style name="customTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#FFA500</item>//标题栏背景色
<item name="colorPrimaryDark">#CCa500</item>
</style>
```
## 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 <init>(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)
没有合适的资源?快使用搜索试试~ 我知道了~
Android代码-PhotoPicker
共139个文件
png:49个
xml:36个
java:29个
需积分: 10 3 下载量 110 浏览量
2019-08-06
07:47:03
上传
评论
收藏 2.69MB ZIP 举报
温馨提示
微信ui版的PhotoPicker 注: 此项目已转移至本人主账号下:在那里继续更新 主账号下的PhotoPicker 注: 图片选择/拍照->裁剪->压缩 整个流程的操作已经串起到下面的库中 PhotoOut 本项目fork 自photoPicker 参考微信的图片选择ui,对原项目photoPicker进行改写。 标题栏:去除难用的toolbar,改成自定义的titlebar。高度44dp,标题居中,颜色引用activity主题设置colorPrimary.可以自己设置. 底部弹出框:原项目两边有间距,现改成铺满屏幕宽度弹出 默认图片更改成黑灰色背景,让滑动时图片闪动不会那么突兀 图片item再加一层蒙版,未选择状态时,由中间向上下浅黑透明渐变,选择状态下,颜色变黑。 选择框: 未选状态下由原来的不透明变成透明,选中状态时图标颜色使用微信的绿色。 demo apk:见项目根目录下demo.apk 更新: 1.0.1: 将图片选择后显示的组件封装了一下,提供了最简化使用的api 该组件既可以用于图片选择后的显示,也可以用于单纯的多图显示,只要设置类型就行 1.0.2 单纯显示图片
资源推荐
资源详情
资源评论
收起资源包目录
Android代码-PhotoPicker (139个子文件)
PhotoPicker-release.aar 155KB
demo.apk 1.62MB
gradlew.bat 2KB
.gitattributes 67B
.gitignore 400B
.gitignore 34B
.gitignore 28B
gradle-mvn-push.gradle 1KB
build.gradle 900B
build.gradle 789B
build.gradle 433B
settings.gradle 43B
gradlew 5KB
gradle-wrapper.jar 52KB
TouchImageView.java 37KB
PhotoPickerFragment.java 11KB
MainActivity.java 11KB
ImagePagerFragment.java 10KB
PhotoPickerActivity.java 7KB
PhotoPagerActivity.java 7KB
PhotoGridAdapter.java 7KB
Titlebar.java 6KB
PhotoAdapter.java 6KB
MultiPickResultView.java 4KB
PhotoPicker.java 4KB
MediaStoreHelper.java 3KB
ImageCaptureManager.java 3KB
PhotoPreview.java 3KB
SelectableAdapter.java 3KB
PhotoPagerAdapter.java 2KB
PhotoPickUtils.java 2KB
PopupDirectoryListAdapter.java 2KB
PhotoDirectory.java 2KB
ExifUtils.java 2KB
RecyclerItemClickListener.java 1KB
PhotoDirectoryLoader.java 1KB
PhotoPickerIntent.java 1KB
SquareItemLayout.java 937B
Selectable.java 756B
Photo.java 702B
OnPhotoClickListener.java 602B
OnItemCheckListener.java 453B
PicChosenListInterface.java 306B
all.jpg 63KB
popwin.jpg 44KB
preview.jpg 43KB
LICENSE 11KB
README.md 5KB
multview.png 829KB
ic_launcher.png 6KB
icon_pic_default.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
__picker_checkbox_marked.png 3KB
ic_launcher.png 3KB
ic_launcher.png 2KB
icon_delete.png 2KB
icon_propser_add.png 1KB
__picker_ic_camera_n.png 1KB
__picker_ic_camera_p.png 1KB
__picker_ic_photo_black_48dp.png 1KB
__picker_checkbox_n.png 1KB
__picker_ic_broken_image_black_48dp.png 971B
__picker_ic_camera_n.png 933B
__picker_ic_camera_p.png 830B
__picker_ic_photo_black_48dp.png 807B
__picker_ic_broken_image_black_48dp.png 702B
__picker_ic_camera_n.png 618B
__picker_ic_camera_p.png 568B
__picker_ic_photo_black_48dp.png 546B
__picker_ic_camera_n.png 489B
__picker_ic_broken_image_black_48dp.png 466B
__picker_ic_broken_image_black_48dp.png 463B
__picker_ic_camera_p.png 445B
arrow_back.png 426B
arrow_back.png 426B
__picker_ic_photo_black_48dp.png 424B
__picker_ic_camera_n.png 339B
icon_test_list_start.png 307B
__picker_ic_camera_p.png 306B
__picker_ic_photo_black_48dp.png 295B
__picker_ic_broken_image_black_48dp.png 254B
__picker_ic_delete_p.png 251B
__picker_ic_delete_black_24dp.png 237B
__picker_ic_delete_n.png 232B
__picker_ic_delete_p.png 204B
__picker_ic_delete_black_24dp.png 187B
__picker_ic_delete_n.png 183B
__picker_ic_delete_p.png 169B
__picker_ic_delete_black_24dp.png 156B
__picker_ic_delete_n.png 155B
__picker_ic_delete_p.png 154B
__picker_ic_delete_black_24dp.png 146B
__picker_ic_delete_n.png 144B
__picker_ic_delete_p.png 116B
__picker_ic_delete_n.png 113B
__picker_ic_delete_black_24dp.png 112B
proguard-rules.pro 1KB
gradle.properties 854B
gradle-wrapper.properties 233B
共 139 条
- 1
- 2
资源评论
weixin_39840914
- 粉丝: 435
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- onenet_chongwukanhu_v06.apk
- 2022NOC软件创意编程赛项真题C++初中-决赛(有解析)
- 2022NOC软件创意编程赛项真题python初中-决赛(有解析)
- openLayer-本地数据加载 (day5)
- A题-正弦信号发生器.xdf
- 2022NOC软件创意编程赛项真题python小学高年级-决赛(有解析)
- mathml转换latex需要的xsl文件
- 2022NOC软件创意编程赛项真题图形化小学高年级-决赛(有解析)
- gbase驱动下载gbase-connector-java-8.3.81.53驱动下载
- 2022NOC软件创意编程赛项真题图形化小学低年级-决赛(有解析)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功