Giter Site home page Giter Site logo

kosmosakura / kosmostoolkit Goto Github PK

View Code? Open in Web Editor NEW
22.0 1.0 4.0 2.56 MB

Kosmos的工具包,我平时用到的工具笔记封装(Java,Kotlin)→GPS工具|wifi热点工具|磁场、方向工具|权限工具|反射辅助|闪光灯|音频池工具|应用程序工具包| 文字、字符处理工具|存储、键盘、日期工具|颜色、吐司、Snackbar、图片工具

Home Page: https://blog.csdn.net/zull_kos_mos

License: Apache License 2.0

Java 89.51% Kotlin 10.49%

kosmostoolkit's Introduction

KosmosUtils

这个是我的工具和笔记库,这里有不少伪代码(笔记),以及一下日常踩坑记录。
项目是不能够直接跑起来的,下面是Utils部分部署的jitpack依赖
详情见我的博客

//版本:v0.2,还有点问题
dependencies {
    implementation 'com.github.KosmoSakura:KosmosToolkit:-SNAPSHOT'
}

1.UBmp→相关工具

分类 功能
bmp2Bytes bmp->byte数组
bytes2bmp byte数组->bmp
drawable2Bmp Drawable->bmp
bmp2Drawable bitmap->Drawable
resId2Bmp resId->bmp
resId2Drawable resId->Drawable
resId2Bmp(resId,w,h) resId->Drawable指定宽高
UGlideSimple Glide普通使用
UGlideDisk Glide内存磁盘方面
UGlideEffect Glide特效方面

2.USnackbar→可以从上面弹出的SB

基于:MySnackBar

方法 描述 封装
showNormal 显示顶部普通通知 传入Contex代替View
showWarning 显示顶部警告通知
showError 显示顶部错误通知
showProgress 显示顶部带进度条通知
showNormalDown 显示底部普通通知
showWarningDown 显示底部警告通知
showErrorDown 显示底部错误通知
showProgressDown 显示底部带进度条通知
showNoAction 显示不带action的通知
showNoColor 显示默认颜色的通知

3.UColor→颜色工具类

方法 描述
ColorFilter 颜色反转
RgbToInt(int , int , int ) 将RGB颜色转化为int
RgbToInt(int , int , int, int ) 将RGB颜色转化为int 带透明度
IntToRgb int颜色转化为RGB
HexFromColor Color对象转换成字符串

时间日期处理,以及平时在处理日期时的踩坑修复

方法(重载) 描述
踩坑记录 比如:关于Calendar获取星期的天数踩坑记录
Safety 其中带Safety字样的是处理过异常判断的安全返回
strToStrSafety strToStrSafety:一种格式的时间 转换另一个 格式的时间
longToReadEasy longToReadEasy:目标时间和现在时间的长度(返回:14年2月1天11小时9分钟)
dateToNow dateToNow:时间格式化(返回:几分钟前、几小时前、几天前、几月前、几年前)
dateToSimpleStr dateToSimpleStr:某个时间段和现在时间的简要写法(eg:2018-10-05 15:30 至 15:40)
getAgeSafety getAgeSafety:通过生日(String、Date)返回年龄
getMondayOfDate getMondayOfDate:返回指定日期所在的周一的日期
getSundayOfDate getSundayOfDate:返回指定日期所在的周七的日期
getDayOfWeek getDayOfWeek:指定日期 所在周的星期
getAnotherMonthDate getAnotherMonthDate(boolean future, int x)getAnotherYearDate(boolean future, int x) ...:返回指定日期 前后x个单位的日期

5.UKeyboard→键盘输入工具类

方法 描述
isKeyboardShow 是否显示软件盘
openOrhide 已经显示,则隐藏,反之则显示
showForce 强制显示键盘
hideForce 强制隐藏键盘

基于Blankj的工具重构

方法 描述
commonD 普通打印Debug
commonV 普通打印Verbose
。。。。。
d 打印带边框的Debug
v 打印带边框的Verbose
。。。。。

7.URegular→正则表达式相关工具

方法 描述
emojiFilters 禁止输入表情
checkPhoneNum 使用正则表达式检查手机号码
checkSign 使用正则表达式检查标点
checkChineseCharacters 校验纯汉字
checkBankCard 校验银行卡卡号
checkPassword_3 密码:必须包含 数字,字母,符号 3项组合
checkPassword 密码:只能包含字母(大小写)和数字
checkNumber 6位纯数字
checkIdCard 验证身份证号码
checkEmail 验证邮箱
formPhoneNo 隐藏手机号中间4位
formIDCardNo 隐藏身份证号中间N位
formBankCard 银行卡号每隔四位增加一个空格

8.USP→SharedPreferences工具

方法 描述
put(String , Object ) 存入Object,自动判断类型
get(String , Object ) 取出Object,,自动判断类型
remove(String ) 删除某一key对应的值
clear 清空SharedPreferences
contain 查询某个key是否存在
getAll 返回所有的键值对
getString 获取String类型
putString 取出String类型
类似的略 类似的略

9.UText→文字、字符相关工具

方法 描述 重载传入
isNull(Object) 为空返回安全类型 TextView、String、Integer、Editable、CharSequence、Long、Float、Boolean
isNull(Object ,defValue) 为空返回指定类型 TextView、String、Integer、Editable、CharSequence、Long、Float、Boolean
isEmpty(Object) 判断是否为空 List、Z[]、String、TextView(判断是否有文字)
isSpace(String) 判断字符串是否为null或全为空格
clearNullOfList 递归:移除list中为null的元素 -
lowerFirstLetter 返回:首字母小写字符串
equals(CharSequence,CharSequence) 判断两字符是否相等 {@code true}: 相等
{@code false}: 不相等
getTextUnderLine 给字符添加下划线 TextView、String
getTextBold 文本加粗
getTextItalic 文本斜体
getSpannableString 动态设置字符串的颜色和大小 (TextView t, int color, int startLocation, int endLocation, float large)
getFileName 获取文件名
getFileSuffix 获取后缀名

10.UUnit→单位换算工具类

单位换算:像素<->dp、摄氏度<->华氏度、字符串版本号换算、字节换算.

方法 描述
sizeFormatbit 格式化字节单位(返回:XGB)
compareVersion(String , String ) 比较版本号的大小, 前者大则返回一个正数, 后者大返回一个负数, 相等则返回0
px2dp 像素转dp
dp2px 反过来
cToF 摄氏度转华氏度
fToC 反过来

11.UGPS→GPS工具

方法名 描述
isGPSOpne GPS是否打开
openGPSSettings 跳转GPS设置界面

12.UWiFi→wifi工具类

方法名 描述
getSSIDWithManager 通过WifiManager获取ssid(需要位置权限)
getSSID 通过ConnectivityManager获取ssid(不需要位置权限)
toLinkedWifi 打开wifi并连接,常规情况
toLinkedWifi 打开wifi并连接,区分3种加密方式
jumpToWifiSetting 跳转到wifi设置页面

13.UAp→wifi热点工具类

方法名 描述
getApSSID 获取wifi热点的ssid (通过反射)
getApPassword wifi热点的password(通过反射)
getApState 获取热点状态(通过反射)
getApOpen 热点是否已经打开(通过反射)
closeAp 关闭热点(通过反射)
openAp 打开热点(解决Android 8.0反射失效的情况)
isSystemO 当前系统是否高于8.0

14.USensor →指南针辅助类:磁场放、方向等传感器工具

指南针功能辅助类

方法 描述
getSensors 获取设备支持的传感器列表
setDegreeListener 设置传感监听
clear 资源清理,注销监听
private static final int sensitivity= 6; 变化灵敏度,数值越小,变化月灵敏

15.UPermissions→权限工具

基于RxPermissions

方法 说明
clear 资源清理
check(String ,Listener,String... ) 权限检测,操作逻辑内部处理
toGoSystem 跳转系统授权页面

16.UReflex→反射辅助工具

方法 描述
getPrivateFirldStr 获取公共属性的值(比如是String类型 )
getPicMethod 获取公共方法的值(比如是String类型 )
getPrtFirld 获取私有属性的值(比如是String类型 )
getPicFirld 获取公共属性的值(比如是String类型 )
getAllField 获取某类的全部属性
getAllMethods 获取某类的全部方法
getSuperClass 获取某类的父类
getClassBase 通过包名+类名获取到类对象

17.UFlashLight→闪光灯工具

方法 说明
screenLight(float alpha) 修改屏幕亮度
light(boolean) true→开启闪光灯,false→关闭闪光灯
openFlash 开启闪光灯
closeFlash 关闭闪光灯

18.USound→音频池工具

方法 说明
instance 异步
load(Context , int... res) 数据加载方法,res为要被加载的raw资源
play(index) 播放
对外提供的方法 说明
getAppList() 获取系统所有安装应用(应用区分系统非系统:sysApp)
loadUsersApp() 获取手机内非系统应用
getAppByPkgName() 通过包名获取该应用的相关信息
getShareApps() 查询手机内所有支持分享的应用
startThridApp() 通过包名启动第三方app
getSystemLanguageList() 获取当前系统上的语言列表(Locale列表)
getAppSize() 获取应用数据大小
installExternalStorage() 应用是否安装在外置储存空间
isSystemApp() 是否是系统应用
getCurTopAppPkg() 轻量: 获取栈顶应用包名(非系统程序在在栈顶时有效)
getTopAppPkg() 获取栈顶应用包名(所有程序有效)
getLauncherPkgName() 获取当前正在运行的桌面launcher包名

其他

0.androidx

androidx的踩坑记录

1.UImage:图片工具

1.基于Retrofit2图片下载 2.2种方式设置壁纸 3.glide4.8获取bmp

TableLayout+ViewPager+Fragment使用示例

RecyclerView瀑布流示例

4.mvp

基于Retrofit2,rxJava的mvp示例

5.dao

greendao3.2数据库升级示例

Retrofit2网络请求,文件下载示例

及相关的踩坑记录,比如:在Retrofit2网络请求时打印参数的踩坑记录


License

   Copyright 2017 Kosmos

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

kosmostoolkit's People

Contributors

kosmosakura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

kosmostoolkit's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.