拍照,选择照片功能
来源:互联网 发布:php javascript 区别 编辑:程序博客网 时间:2024/05/01 18:04
https://github.com/FinalTeam/RxGalleryFinal
compile ‘cn.finalteam.rxgalleryfinal:library:1.1.3’
配置manifest
截图:
image
提供了相关的Api请查看MainActivity的示例代码 查看 Sample 代码 //自定义方法的使用 onClickZDListener(); //调用图片选择器Api onClickSelImgListener(); //调用视频选择器Api onClickSelVDListener(); //调用裁剪Api onClickImgCropListener(); //手动打开日志。 ModelUtils.setDebugModel(true);这里可以配置主题
image
Theme
配置Theme请查看sample下的 xml-> TestTheme..
Code //自定义方法的单选 RxGalleryFinal .with(context) .image() .radio() .crop() .imageLoader(ImageLoaderType.GLIDE) .subscribe(new RxBusResultSubscriber<ImageRadioResultEvent>() { @Override protected void onEvent(ImageRadioResultEvent imageRadioResultEvent) throws Exception { //图片选择结果 ..... } }) .openGallery();//自定义方法的多选RxGalleryFinal.with(MainActivity.this).image().multiple().maxSize(8).imageLoader(ImageLoaderType.UNIVERSAL).subscribe(new RxBusResultSubscriber<ImageMultipleResultEvent>() { @Override protected void onEvent(ImageMultipleResultEvent imageMultipleResultEvent) throws Exception { toast("已选择" + imageMultipleResultEvent.getResult().size() + "张图片"); } @Override public void onCompleted() { super.onCompleted(); Toast.makeText(getBaseContext(), "OVER", Toast.LENGTH_SHORT).show(); }}).openGallery(); //得到图片多选的事件 RxGalleryListener.getInstance().setMultiImageCheckedListener(new IMultiImageCheckedListener() { @Override public void selectedImg(Object t, boolean isChecked) { //这个主要点击或者按到就会触发,所以不建议在这里进行Toast } @Override public void selectedImgMax(Object t, boolean isChecked, int maxSize) { toast("你最多只能选择" + maxSize + "张图片"); }}); //注解诠释 RxGalleryFinal.with(context) .image()//图片 .radio()//单选 .crop()//裁剪 .video()//视频 .imageLoader(ImageLoaderType.GLIDE) //里面可以选择主流图片工具 PICASSO GLIDE FRESCO UNIVERSAL(ImageLoader) .subscribe(rxBusResultSubscriber) .openGallery();//调用裁剪.RxGalleryFinalApi.getModelPath()为默认的输出路径RxGalleryFinalApi.cropScannerForResult(MainActivity.this, RxGalleryFinalApi.getModelPath(), inputImg);
//获取和设置 保存路径
RxGalleryFinalApi.getImgSaveRxCropDirByFile();//得到裁剪路径
RxGalleryFinalApi.getImgSaveRxCropDirByStr();//得到裁剪路径
RxGalleryFinalApi.getImgSaveRxDirByFile();//得到图片路径
RxGalleryFinalApi.getImgSaveRxCropDirByStr();//得到图片路径
//获取和设置 保存路径
//…… setImgSaveXXXXX().
//图片自动会存储到下面,裁剪会自动生成路径;也可以手动设置裁剪的路径;
RxGalleryFinalApi.setImgSaveRxSDCard(“dujinyang”);
//自定义裁剪
rx.cropAspectRatioOptions(0, new AspectRatio(“3:3”,30, 10))
.crop()
.openGallery();
//4.演示 单选裁剪 并且增加回掉 (裁剪必须在open之前)
RxGalleryFinalApi.getInstance(this)
.onCrop(true)//是否裁剪
.openGalleryRadioImgDefault(new RxBusResultSubscriber() {
@Override
protected void onEvent(Object o) throws Exception {
Logger.i(“只要选择图片就会触发”);
}
})
.onCropImageResult(new IRadioImageCheckedListener() {
@Override
public void cropAfter(Object t) {
Logger.i(“裁剪完成”);
}
@Override public boolean isActivityFinish() { Logger.i("返回false不关闭,返回true则为关闭"); return true; } });添加权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />注册activity <application ... android:theme="@style/Theme_Light"> <activity android:name="cn.finalteam.rxgalleryfinal.ui.activity.MediaActivity" android:screenOrientation="portrait" android:exported="true" android:theme="@style/Theme_Light.Default"/> <activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Theme_Light.Default"/> </application
混淆配置
1.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);
}
2.rx
-dontwarn io.reactivex.**
-keep io.reactivex.**
-keepclassmembers class io.reactivex.* { ; }
3.retrolambda
-dontwarn java.lang.invoke.*
4.support-v4
-keep class android.support.v4.* { ; }
-keep interface android.support.v4.* { ; }
5.ucrop
-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }
6.photoview
-keep class uk.co.senab.photoview** { *; }
-keep interface uk.co.senab.photoview** { *; }
7.rxgalleryfinal
-keep class cn.finalteam.rxgalleryfinal.ui.widget** { *; }
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class *.R$ {
public static ;
}
-keepattributes Annotation
-keepclasseswithmembernames class * {
native ;
}
-keepclassmembers public class * extends android.view.View {
void set*(*);
* get*();
}
- 拍照,选择照片功能
- 拍照、选择照片功能的实现
- 拍照,系统选择照片
- 拍照,选择照片
- 安卓拍照和选择照片上传功能代码
- Android仿微信选择照片,拍照
- 拍照,选择照片并且剪裁
- 选择照片、拍照裁剪上传
- ios照片获取、拍照功能
- Ionic调用摄像头拍照和选择图库照片功能的注意点
- android 选择照片(相册/拍照/切图)
- Android开发--拍照选择照片裁剪
- Android自定义ViewGroup (选择照片或者拍照)
- Android 从相册选择照片 手机拍照
- Android 中拍照、相册选择、裁剪照片
- Android7.0 拍照 选择照片 权限 实现
- android 调用系统拍照、选择本地照片
- iOS 上传照片到服务器 获取相册和拍照功能的照片 照片压缩上传
- C++ STL 容器与算法概述
- python网络编程
- 聊聊gcc参数中的-I, -L和-l
- 203-Remove Linked List Elements
- linux内存源码分析
- 拍照,选择照片功能
- 两个单链表生成相加链表
- 人生不如意事十之八九,90% 是因为没女朋友
- Android调用本机地图APP
- c++实现求哈夫曼数及其对应的哈夫曼编码和译妈
- SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 疯狂Activiti6连载(12)DMN规范概述
- Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!解决方法
- Eclipse 关闭 updating indexes