-
Notifications
You must be signed in to change notification settings - Fork 33
Home
1.添加jitPack到你项目的build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.添加依赖
dependencies {
compile 'com.github.Beseting:PlanA:v1.0.18'
}
- 请查看app/proguard-rules.pro 混淆文件
android{
...
dataBinding {
enabled = true
}
}
-
开启菊花加载模态窗 showDialog();
-
关闭菊花加载模态窗 closeDialog();
-
TitleBar仅支持根布局为线性布局和相对布局,且相对布局时需要设置正文的上边距(50dp,TitleBar的高度)
-
隐藏标题栏 hideTitleBar();
-
隐藏返回icon hideEsc();
-
设置标题 setTitle(Object title); title参数为String或int(String引用)
-
标题栏显示更多icon showMore(OnTitleBarListener onTitleBarListener); 参数为点击回调接口,位于BaseActivity
-
替换标题栏更多icon replaceMoreIcon(int iconId); 参数为新icon的id引用
-
设置标题栏背景颜色 setTitleBarBg(color); 参数为int颜色值
-
设置返回icon setEscIcon(color);
-
设置标题颜色 setTitleTextColor(color);
-
设置标题字体大小 setTitleTextSize(textSizeSP);
-
获取返回icon getEscIcon();
-
获取标题控件 getTitleView();
-
获取更多icon getMoreIcon();
-
获取标题栏 getRlTitleBar();
-
获取ViewDataBinding getViewDataBinding(); 获取的实例为ViewDataBinding 需要强转
-
setIsShowStatusBar(isShow); 是否显示状态栏,true:恢复状态栏位置并默认背景色,false:隐藏状态栏并使布局顶上去
-
setStatusBarColor(color); 设置状态栏颜色
-
setStatusBarColor(color,alpha); 设置状态栏颜色,alpha为透明度
-
6.0+权限请求,requestPermission(permissions,code) 所请求的权限别忘了在Manifest里注册
-
权限请求回调,权限请求成功回调接口:permissionSucceed 权限请求失败回调接口:permissionFailing
-
界面路由(不带参):PRouter.getInstance().navigation(context,targetActivity)
-
界面路由(链式带参):PRouter.getInstance().withInt(key,value).withSting(key,value)....navigation(context,targetActivity)
-
路由跳转:navigation(context,targetActivity) 或者 navigation(activity,targetActivity,isFinish) 后者多了个是否结束当前Activity的参数
-
路由跳转:navigation(activity,targetActivity,requestCode) 即相当于startActivityForResult附带Activity结果回调
-
路由参数获取:PRouter.getInt(key) PRouter.getString(key) PRouter.getLong(key)...
-
PS:调用路由单例PRouter.getInstance()的时候会初始化之前带过的参数,所以在PRouter.getInstance()后再调路由参数获取是拿不到参数的(因为这个时候的参数已经被单例初始化了)
-
继承BaseActivity后会在OnCreate函数自动调用Activity入栈方法,这里就不需要重复对Activity进行入栈了
-
Activity入栈:ActivityStack.getInstance().pushActivity(activity);
-
Activity弹栈:ActivityStack.getInstance().popActivity("activityName") ActivityStack.getInstance().popActivity(targetActivity)
-
清栈(销毁所有Activity):ActivityStack.getInstance().clearAllActivity();
- 与继承BaseActivity类似,不包含TitleBar相关操作
-
ImageHelper,图片助手工具
- ImageHelper.CompressionImage(filePath),压缩图片,返回Bitmap
-
LogUtils,用于Log日志打印
-
debug:LogUtils.d(tag,msg) LogUtils.d(msg)默认debug tag
-
info:LogUtils.i(tag,msg) LogUtils.i(msg)默认info tag
-
error:LogUtils.e(tag,msg) LogUtils.e(msg)默认error tag
-
-
MeasureUnitTranUtil,度量单位转换工具
-
MeasureUnitTranUtil.dip2px(context,dpValue) dp转px
-
MeasureUnitTranUtil.px2dip(context,pxValue) px转dp
-
-
ToastUtils 吐司工具
-
ToastUtils.showShort(context,stringId) ToastUtils.showShort(context,msgStr) 短时间显示吐司
-
ToastUtils.showLong(context,stringId) ToastUtils.showLong(context,msgStr) 长时间显示吐
-
ToastUtils.show(context,stringId,during) ToastUtils.show(context,msgStr,during) 自定义显示时长
-
-
AlertUtils v7style的AlertDialog
- AlertUtils.showAlert(context, title, content, confirmOnClickListener) 参数分别为 上下文、标题、内容、确定点击回调
-
DateUtils 日期工具
-
DateUtils.getDateStr() 获取日期 2016-10-01 12:02:12
-
DateUtils.getTimeInMillis() 获取当前时间戳
-
DateUtils.getCurrentYear() 获取当前年份
-
DateUtils.getCurrentMonth() 获取当前月份
-
DateUtils.getCurrentDate() 获取当前日期号数
-
DateUtils.getCurrentDay() 获取当前星期几
-
-
SPUtils SharedPreferences存储工具类
-
SPUtils.setParam(context,key,value) 键值对方式存储数据
-
SPUtils.getParam(context,key,defaultValue) 获取key对应的数据
-
SPUtils.clear(context) 清除存储的数据
-
SDK APPID申请及崩溃日志:https://bugly.qq.com
ndk配置:在主模块的build.gradle中配置
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
//依赖
dependencies {
...
// 腾讯CrashReport
implementation 'com.tencent.bugly:crashreport:2.6.6'
implementation 'com.tencent.bugly:nativecrashreport:3.3.1'
}
// 初始化Bugly,请在Application类的onCreate方法调用
String processName = AppUtils.getProcessName(android.os.Process.myPid());// 获取当前进程名
CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(getApplicationContext());// 设置是否为上报进程
strategy.setUploadProcess(processName == null || processName.equals(getApplicationContext().getPackageName()));
CrashReport.initCrashReport(getApplicationContext(), appId, isDebug, strategy);
-
在Application的onCreate中初始化BASE_URL
RetrofitClient.initBaseUrl(BASE_URL);
-
请求参数
RequestParams.getInstance().addParam(key,value).addParam(key,value)...;//链式添加参数 RequestParams.paramMap //参数的map对象 demo:添加参数为id=1,name=Kevin RequestParams.getInstance().addParam("id",1).addParam("name","Kevin"); RequestParams.paramMap //这个对象返回的就是id=1,name=Kevin的map对象
-
IBaseBiz 业务接口基类
-
IBaseBiz 用到网络请求的地方就可以在Activity里实现,主要有以下两个实现方法
-
getActivity() 获取Activity对象
-
toActivity() 到UI执行的方法
-
-
Data / ResponseBody 请求成功返回类型
Data: { status : 1, message : "请求成功", data : Object } ResponseBody : 将会直接返回解析好的请求字符串
-
ICommonHttpCallback 请求回调接口
-
onResponse(requestCode,data); 回调成功,不区分status全返回
-
onSuccess(requestCode,data); 回调正确状态的data数据 status:1
-
onException(requestCode,data); 回调异常状态data数据 status!=1
-
onError(requestCode,e); 回调错误方法,诸如404,500,timeout等
-
requestCode 为请求码,主要用于多个请求并行的时候,在请求成功回调接口里面区分请求对应的响应
-
data 请求返回的数据
-
e 请求失败的Throwable
-
-
GET请求
RetrofitClient.getInstance().doGet(url,iBaseBiz,iCommonHttpCallback);//无参,无requestCode RetrofitClient.getInstance().doGet(url,params,iBaseBiz,iCommonHttpCallback);//有参,无requestCode RetrofitClient.getInstance().doGet(url,requestCode,iBaseBiz,iCommonHttpCallback);//无参,有requestCode RetrofitClient.getInstance().doGet(url,requestCode, params,iBaseBiz,iCommonHttpCallback);//有参,有requestCode commonHttpCallback附带的泛型有Data与ResponseBody,主要是看请求成功回调方法给数据类型
-
POST请求
RetrofitClient.getInstance().doPost(url,iBaseBiz,iCommonHttpCallback);//无参,无requestCode RetrofitClient.getInstance().doPost(url,params,iBaseBiz,iCommonHttpCallback);//有参,无requestCode RetrofitClient.getInstance().doPost(url,requestCode,iBaseBiz,iCommonHttpCallback);//无参,有requestCode RetrofitClient.getInstance().doPost(url,requestCode,params,iBaseBiz,iCommonHttpCallback);//有参,有requestCode commonHttpCallback附带的泛型有Data与ResponseBody,主要是看请求成功回调方法给数据类型
-
文件上传
RetrofitClient.getInstance().uploadFile(url,iBaseBiz,iCommonHttpCallback,file);//无参,无requestCode,单个文件上传 RetrofitClient.getInstance().uploadFile(url,params,iBaseBiz,iCommonHttpCallback,file);//有参,无requestCode,单个文件上传 RetrofitClient.getInstance().uploadFile(url,requestCode,iBaseBiz,iCommonHttpCallback,file);//无参,有requestCode,单个文件上传 RetrofitClient.getInstance().uploadFile(url,requestCode,params,iBaseBiz,iCommonHttpCallback,file);//有参,有requestCode,单个文件上传 RetrofitClient.getInstance().uploadFiles(url,iBaseBiz,iCommonHttpCallback,fileMaps);//无参,无requestCode,多个文件上传 RetrofitClient.getInstance().uploadFiles(url,params,iBaseBiz,iCommonHttpCallback,fileMaps);//有参,无requestCode,多个文件上传 RetrofitClient.getInstance().uploadFiles(url,requestCode,iBaseBiz,iCommonHttpCallback,fileMaps);//无参,有requestCode,多个文件上传 RetrofitClient.getInstance().uploadFiles(url,requestCode,params,iBaseBiz,iCommonHttpCallback,fileMaps);//有参,有requestCode,多个文件上传 commonHttpCallback附带的泛型有Data与ResponseBody,主要是看请求成功回调方法给数据类型
-
取消网络请求
RetrofitClient.getInstance().cancelRequest(taskId);//所有RetrofitClient.getInstance().xxx()的网络请求返回的都是taskId
-
文件下载
FileDownloadHelper.download(context, url, path, fileDownloadCallback);//文件下载助手 接口回调FileDownloadCallback,有以下两个方法 onProgress(int progress, int total, double percent);//progress进度,total总大小,percent百分比 completed(File file);//完成下载,返回下载完成的file对象
-
BounceScrollView:仿IOS下拉、上拉反弹效果,继承ScrollView的自定义控件
-
GridViewWithBorder:附带边框的GridView自定义控件
-
NoScrollGridView:固定高度(不滚动)的自定义GridView,适合滑动嵌套
-
NoScrollListView:固定高度(不滚动)的自定义ListView,适合滑动嵌套
-
CircleImageView:圆形图片
app:border_width:边框宽度 app:border_color:边框颜色
-
RatingBar:自定义打分控件
starCount:总分 starEmpty:默认显示的图 starFill:显示满的图 starHalf:显示一半的图 starImageSize:图片尺寸 starPadding:内边距 starStep:显示数量,支持小数点 stepSize:每次点击所增加的量是整个还是半个 mClickable:是否可点击 onRatingChangeListener:点击改变事件
-
单张网络图片
ImageBrowseIntent.showUrlImageBrowse(mContext,"...");
-
多张网络图片
ArrayList<String> imageList = new ArrayList<>(); imageList.add("..."); ... ImageBrowseIntent.showUrlImageBrowse(mContext,imageList,position);
-
单张资源图片
ImageBrowseIntent.showResIdImageBrowse(mContext,R.mipmap.xxx);
-
多张资源图片
ArrayList<Integer> imageResList = new ArrayList<>(); imageResList.add(R.mipmap.xxx); ... ImageBrowseIntent.showResIdImageBrowse(mContext,imageResList,position);