Android开发人员不得不收集的工具类集合 | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | WebView的封装可播放视频 | 仿斗鱼滑动验证码 | Toast封装 | 编译运行一下说不定会找到惊喜

博客园潜水了有两年多,现在想分享一个可以说是帮助类吧。

RxTools

我们在编写程序的过程中,经常会用到一些方法,我只是把这些方法整合一下,方便使用,目前有md5,sha1,aes加解密,身份证验证,敏感词过滤,文件压缩,图片与base64互相转换,时间戳与时间互相转换,简单的http请求,简单的ftp上传下载,根据起始和结尾字符串截取字符串等等,后续准备把日志记录,支付宝和微信支付进行添加,方便使用,如果你在编程的过程中有比较常用的方法,可以提出来,我们可以一起来完善这个帮助类,如果有不对的地方,恳请指正批评,谢谢大家,喜欢可以分享哦。

mgm娱乐场 1

nuget:Install-Package ToolHelper -Version 1.2.2

github:https://github.com/cxzzx007/ToolHelper

mgm娱乐场 2

 

只需三步走,我们就可以使用这些方法了。

工欲善其事必先利其器!

  1,nuget 安装 ToolHelper

Android开发过程经常需要用到各式各样的工具类,虽然大部分只需谷歌/百度一下就能找到;

    mgm娱乐场 3

但是有时候急需使用却苦苦搜寻不到,于是整理了自己平常用到的工具类,以便以后的使用。

 

如何使用它

 

Step 1.先在 build.gradle(Project:XXXX) 的 repositories 添加::

  2,添加命名空间

allprojects {

  mgm娱乐场 4

repositories {

  3,开始使用

下面介绍这个帮助类目前有的的一些方法:

maven { url “https://jitpack.io” }

MD5Helper(对字符串进行MD5):

}

Console.WriteLine($"123456:{MD5Helper.MD5("123456")}");

}

mgm娱乐场 5

Step 2. 然后在 build.gradle(Module:app) 的 dependencies 添加:

 

dependencies {

SHA1Helper(对字符串进行SHA1):

compile ‘com.github.vondear:RxTools:v1.6.0’

Console.WriteLine($"123456:{SHA1Helper.SHA1("123456")}");

}

mgm娱乐场 6

使用方法:

 

在Application中初始化 RxUtils.init(this);

IllegalWordHelper(敏感非法词汇过滤):

自定义控件介绍

var info = "针孔摄象,你懂的";
Console.WriteLine($"{info}:{IllegalWordHelper.Filter(info)}");

RxToast                    : Toast的封装

mgm娱乐场 7

RxTitle                    : 自定义标题控件

当然你也可以自己定义需要过滤的词汇,以竖线 ‘|’ 分割:

RxTextAutoZoom              : 文字根据布局大小自动缩放效果

 var info = "针孔摄象,你懂的";
 var selfFilter = "针孔|你懂的|怎么说";
 Console.WriteLine($"{info}:{IllegalWordHelper.Filter(info, selfFilter)}");

RxRunTextView              : TextView实现跑马灯效果

mgm娱乐场 8

RxTextviewVertical          : 单行文字上下滚动

 

RxTextViewVerticalMore      : 多行文字上下滚动

 

RxAutoImageView            : ImageView实现自动左右移动效果

AESHelper(aes加密、解密):

RxBarCode                  : 条形码控件

加密:

RxQRCode                    : 二维码控件

Console.WriteLine($"123456:{AESHelper.Encrypt("123456")}");

RxNetSpeedView              : 显示当前网速控件

mgm娱乐场 9

RxToolTip                  : 实现popupWindow效果

解密:

RxRoundProgress            : 实现弧形进度条

Console.WriteLine($"ApZg+nlV6IEE+Cly2o9inQ==:{AESHelper.Decrypt("ApZg+nlV6IEE+Cly2o9inQ==")}");

RxProgressBar              : 自定义进度条

mgm娱乐场 10

RxShoppingView              : 商品数量加减控件

当然为了安全起见,你可以自定义自己的 16位或者32位key  和16位的iv:

RxSeatMovie                : 电影院选座控件

自定义加密:

RxSeatAirplane              : 飞机票选座控件

  var selfKey = "abcdefghijklmnop";
  var selfIV = new byte[] { 0x7f, 0x0a, 0x2d, 0x96, 0x94, 0xa5, 0xc2, 0x7b, 0xaa, 0x89, 0x00, 0x8b, 0xf3, 0xab, 0x15, 0xfd, };
  Console.WriteLine($"123456:{AESHelper.Encrypt("123456", selfKey, selfIV)}");

RxRulerWheelView            : 刻度横向滚动控件

mgm娱乐场 11

RxCaptcha                  : 验证码控件

自定义解密:

Dialog的封装(RxDialog)

   var selfKey = "abcdefghijklmnop";
   var selfIV = new byte[] { 0x7f, 0x0a, 0x2d, 0x96, 0x94, 0xa5, 0xc2, 0x7b, 0xaa, 0x89, 0x00, 0x8b, 0xf3, 0xab, 0x15, 0xfd, };
   Console.WriteLine($"Vju1+MLzN5VUlNua+HhMkA==:{AESHelper.Decrypt("Vju1+MLzN5VUlNua+HhMkA==", selfKey, selfIV)}");

skipTools                  : 隐藏头部导航栏状态栏

mgm娱乐场 12

setFullScreen              : 文字根据布局大小自动缩放效果

 

setFullScreenWidth          : 设置宽度match_parent

CheckHelper(对手机号、身份证等进行简单的验证):

setFullScreenHeight        : 设置高度为match_parent

Console.WriteLine($"123456,{CheckHelper.IsIDNumber("123456")}");
Console.WriteLine($"123456,{CheckHelper.IsMobile("123456")}");

setOnWhole                  : 设置成全局Dialog

mgm娱乐场 13

Activity的封装

 

ActivityBase                : 封装了FragmentActivity与Context成员参数

 StringHelper(根据起始和结尾的字符串来截取字符串):

ActivityCodeTool            : 封装了生成二维码与条形码的Activity

Console.WriteLine($"针孔摄像头,{StringHelper.Substring("针孔摄像头", "针孔", "头")}");

ActivityScanerCode          : 封装了扫描二维码与条形码的Activity

mgm娱乐场 14

ActivityWebView            :
封装了可播放视频、获取网页标题并可根据内容自动适应大小WebView的Activity

 

Demo介绍

TimeHelper(13位时间戳和时间的相互转换):

RxPhotoUtils操作UCrop裁剪图片

Console.WriteLine($"时间戳:{TimeHelper.GetTimestamp()}");
Console.WriteLine($"时间:{TimeHelper.TimestampToDate("1533570979682")}");

mgm娱乐场 15

二维码与条形码的扫描与生成

 

ImageHelper(图片转base64字符串,字节数组,base64字符串转图片):

常用的Dialog展示

图片转base64:

 var path = @"C:\Project\study\Study\ToolHelperTestNuget\huge.jpg";
 Console.WriteLine($"base64 string:{ImageHelper.ImageToBase64(path)}");

mgm娱乐场 16

其他功能展示

base64转图片:

 var path = @"C:\Project\study\Study\ToolHelper\ToolHelperTestNuget\huge.jpg";
 ImageHelper.Base64ToImage(ImageHelper.ImageToBase64(path), "e:/images/hugehello.jpg");

mgm娱乐场 17

功能模块介绍

 

常用功能 -> RxUtils.java

参考:

hideKeyboard                : 点击隐藏软键盘

https://github.com/toolgood/ToolGood.Words

countDown                  : 倒计时(获取验证码倒计时)

showToast                  : 封装了Toast的方法

fixListViewHeight          :
手动计算出listView的高度,但是不再具有滚动效果

createQRImage              : 生成二维码

drawLinecode                : 生成条形码

Md5                        : 生成MD5加密32位字符串

图像操作相关 -> RxImageUtils.java

单位转换

dp2px                      : dp转px

dip2px                      : dip转px

px2dp                      : px转dp

px2dip                      : px转dip

sp2px                      : sp转px

px2sp                      : px转sp

图片处理相关

bitmap2Bytes                : bitmap转byteArr

bytes2Bitmap                : byteArr转bitmap

drawable2Bitmap            : drawable转bitmap

bitmap2Drawable            : bitmap转drawable

drawable2Bytes              : drawable转byteArr

bytes2Drawable              : byteArr转drawable

calculateInSampleSize      : 计算采样大小

getBitmap                  : 从文件/InputStream流/resId中获取bitmap

scale                      : 缩放图片

clip                        : 裁剪图片

skew                        : 倾斜图片

rotate                      : 旋转图片

getRotateDegree            : 获取图片旋转角度

toRound                    : 转为圆形图片

toRoundCorner              : 转为圆角图片

fastBlur                    : 快速模糊

renderScriptBlur            : renderScript模糊图片(API大于17)

stackBlur                  : stack模糊图片

addFrame                    : 添加颜色边框

addReflection              : 添加倒影

addTextWatermark            : 添加文字水印

addImageWatermark          : 添加图片水印

toAlpha                    : 转为alpha位图

toGray                      : 转为灰度图片

save                        : 保存图片

isImage                    : 根据文件名判断文件是否为图片

getImageType                : 获取图片类型

图片压缩有关

compressByScale            : 按缩放压缩

compressByQuality          : 按质量压缩

compressBySampleSize        : 按采样大小压缩

GetLocalOrNetBitmap        : 得到本地或者网络上的bitmap

getColorByInt              : 将16进制的颜色转化成10进制

FilpAnimation              : 界面翻转动画

数据处理相关 -> RxDataUtils.java

数据的判断

isNullString                :判断字符串是否为空 为空即true

isEmpty                    : 判断对象是否为空 为空即true

isInteger                  :判断字符串是否是整数

isDouble                    :判断字符串是否是浮点数

isNumber                    :判断字符串是否是数字

getAstro                    :根据日期判断星座

数据的转换

stringToInt                :字符串转换成整数 ,转换失败将会 return 0;

stringToLong                :字符串转换成long ,转换失败将会 return 0;

stringToDouble              :字符串转换成double ,转换失败将会 return 0;

simpleDateFormat            :将date转换成format格式的日期

Date2Timestamp              : 将日期字符串 按照 指定的格式 转换成 DATE

getDate                    :时间戳  转换成 指定格式的日期

string2Timestamp            :将 yyyy年MM月dd日 转换成 时间戳

getCurrentDateTime          :获取当前日期时间 / 得到今天的日期

getYestoryDate              :得到昨天的日期

formatTime                  :视频时间 转换成 “mm:ss”

formatSeconds              :”mm:ss” 转换成 视频时间

getDaysByYearMonth          :根据年 月 获取对应的月份 天数

StringToInputStream        :字符串转InputStream

upperFirstLetter            :首字母大写

lowerFirstLetter            :首字母小写

reverse                    :反转字符串

toDBC                      :转化为半角字符

toSBC                      :转化为全角字符

oneCn2ASCII                :单个汉字转成ASCII码

oneCn2PY                    :单个汉字转成拼音

getPYFirstLetter            :获得第一个汉字首字母

cn2PY                      :中文转拼音

bytes2HexString            :byteArr转hexString

hexString2Bytes            :hexString转byteArr

hex2Dec                    :hexChar转int

chars2Bytes                :charArr转byteArr

bytes2Chars                :byteArr转charArr

byte2Size                  :字节数转以unit为单位的size

size2Byte                  :以unit为单位的size转字节数

byte2FitSize                :字节数转合适大小

input2OutputStream          :inputStream转outputStream

output2InputStream          :outputStream转inputStream

inputStream2Bytes          :inputStream转byteArr

bytes2InputStream          :byteArr转inputStream

outputStream2Bytes          :outputStream转byteArr

bytes2OutputStream          :outputStream转byteArr

inputStream2String          :inputStream转string按编码

string2InputStream          :string转inputStream按编码

outputStream2String        :outputStream转string按编码

string2OutputStream        :string转outputStream按编码

正则判断

isMobile                    :判断是否为真实手机号

isMobileSimple              :验证手机号(简单)

isMobileExact              :验证手机号(精确)

isTel                      :验证电话号码

isBankCard                  :验证银卡卡号

validateIdCard              :15位和18位身份证号码的正则表达式
身份证验证

isIDCard15                  :验证身份证号码15位

isIDCard18                  :验证身份证号码18位

isEmail                    :验证邮箱

isURL                      :验证URL

isChz                      :验证汉字

isUsername                  :验证用户名

isDate                      :验证yyyy-MM-dd格式的日期校验,已考虑平闰年

isIP                        :验证IP地址

isMatch                    :string是否匹配regex

stringFormat                : String.Format方法的封装

hideMobilePhone            :隐藏手机中间4位号码

formatCard                  :格式化银行卡 隐藏中间8位号码

formatCardEndFour          :获取银行卡后四位

format2Decimals            :将字符串格式化为带两位小数的字符串

RxActivityUtils

isExistActivity            : 判断是否存在指定Activity

launchActivity              : 打开指定的Activity

skipActivity                : 跳转到指定Activity

skipActivityAndFinish      : 跳转到指定Activity并关闭当前Activity

skipActivityAndFinishAll    : 跳转后Finish之前所有的Activity

skipActivityForResult      : activityForResult封装

getLauncherActivity        : 获取launcher activity

RxAnimationUtils

animationColorGradient      : 颜色渐变动画

cardFilpAnimation          : 卡片翻转动画

RxAppUtils

InstallAPK                  :安装APK

installApp                  : 安装App(支持6.0)

installAppSilent            : 静默安装App

uninstallApp                : 卸载App

uninstallAppSilent          : 静默卸载App

isAppRoot                  : 判断App是否有root权限

launchApp                  : 打开App

getAppPackageName          : 获取App包名

getAppDetailsSettings      : 获取App具体设置

getAppName                  : 获取App名称

getAppIcon                  : 获取App图标

getAppPath                  : 获取App路径

getAppVersionName          : 获取App版本号

getAppVersionCode          : 获取App版本码

isSystemApp                : 判断App是否是系统应用

isAppDebug                  : 判断App是否是Debug版本

getAppSignature            : 获取App签名

getAppSignatureSHA1        : 获取应用签名的的SHA1值

isInstallApp                : 判断App是否安装

getAppInfo                  : 获取当前App信息

getBean                    : 得到AppInfo的Bean

getAllAppsInfo              : 获取所有已安装App信息

isAppBackground            :判断当前App处于前台还是后台

状态栏相关 -> RxBarUtils.java

setTransparentStatusBar    : 设置透明状态栏(api大于19方可使用)

hideStatusBar              : 隐藏状态栏

noTitle                    :隐藏Title

FLAG_FULLSCREEN            : 设置全屏

getStatusBarHeight          : 获取状态栏高度

isStatusBarExists          : 判断状态栏是否存在

getActionBarHeight          : 获取ActionBar高度

showNotificationBar        : 显示通知栏

hideNotificationBar        : 隐藏通知栏

invokePanels                : 反射唤醒通知栏

照相机相关 -> RxCameraUtils.java

getOpenCameraIntent        : 获取打开照程序界面的Intent

getImagePickerIntent        :
获取[跳转至相册选择界面,并跳转至裁剪界面,可以指定是否缩放裁剪区域]的Intent

getCameraIntent            :
获取[跳转至相册选择界面,并跳转至裁剪界面,默认可缩放裁剪区域]的Intent

getCropImageIntent          : 获取[跳转至裁剪界面]的Intent

getChoosedImage            : 获得选中相册的图片

getChoosedImagePath        : 获得选中相册的图片路径

getTakePictureFile          : 获取拍照之后的照片文件(JPG格式)

常量相关 -> RxConstUtils.java

存储相关常量

BYTE                        : Byte与Byte的倍数

KB                          : KB与Byte的倍数

MB                          : MB与Byte的倍数

GB                          : GB与Byte的倍数

时间相关常量

MSEC                        : 毫秒与毫秒的倍数

SEC                        : 秒与毫秒的倍数

MIN                        : 分与毫秒的倍数

HOUR                        : 时与毫秒的倍数

DAY                        : 天与毫秒的倍数

正则相关常量

REGEX_MOBILE_SIMPLE        : 手机号(简单)

REGEX_MOBILE_EXACT          : 手机号(精确)

REGEX_TEL                  : 电话号码

REGEX_IDCARD15              : 身份证号码15位

REGEX_IDCARD18              :身份证号码18位

REGEX_EMAIL                :邮箱

REGEX_URL                  :URL

REGEX_CHZ                  :汉字

REGEX_USERNAME             
:用户名,取值范围为a-z,A-Z,0-9,”_”,汉字,不能以”_”结尾,用户名必须是6-20位

mgm娱乐场,REGEX_DATE                  :yyyy-MM-dd格式的日期校验,已考虑平闰年

REGEX_IP                    :IP地址

编码解码相关工具类 -> RxEncodeUtils.java

urlEncode                  :URL编码

urlDecode                  :URL解码

base64Encode                :Base64编码

base64Encode2String        :Base64编码

相关文章