把项目中常用的小工具做个总结吧,方便自己以后用到

2024-05-10 10:08

本文主要是介绍把项目中常用的小工具做个总结吧,方便自己以后用到,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、根据手机的分辨率从 dp 的单位 转成为 px(像素) 

public static int dip2px(Context context, float dpValue) {  final float scale = context.getResources().getDisplayMetrics().density;  return (int) (dpValue * scale + 0.5f);  }

2、根据手机的分辨率从 px(像素) 的单位 转成为 dp

public static int px2dip(Context context, float pxValue) {  final float scale = context.getResources().getDisplayMetrics().density;  return (int) (pxValue / scale + 0.5f);  } 

3、获取屏幕的宽度

public static int getScreenWidth(Context context) {DisplayMetrics dm = new DisplayMetrics();dm = context.getApplicationContext().getResources().getDisplayMetrics();int width = dm.widthPixels;return width;}

4、获取屏幕的高度

public static int getScreenHeight(Context context) {DisplayMetrics dm = new DisplayMetrics();dm = context.getApplicationContext().getResources().getDisplayMetrics();int height = dm.heightPixels;return height;}

5、验证手机号格式

public static boolean isMobileNO(String mobiles) {Pattern p = Pattern.compile("^[1][3,4,5,8,7][0-9]{9}$");Matcher m = p.matcher(mobiles);return m.matches();}

6、验证邮箱格式正确性,仅验证邮箱是否是字母或数字组成、以及@符号后是否为字母或数字

public static boolean checkEmail(String arg0) {return arg0.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$");}

7、用户名,由字母数字下划线组成,并以字母下划线开头,6到20个字符之间

public boolean checkUserName(String name){Pattern pattern = Pattern.compile("^^[a-zA-Z_][a-zA-Z0-9_]{5,19}$");Matcher matcher = pattern.matcher(name);  return matcher.matches();}

8、根据身份证获取性别

public static String getSex(String arg0) {if(checkNullMethod(arg0) && arg0.length() >= 18){String sex = arg0.substring(16, 17);int sex2 = Integer.valueOf(sex);if (sex2 % 2 == 0) {return "女";}}else{return "男";}return "";}

9、根据身份证获取出生日期

public static String getBirth(String arg0) {String year = arg0.substring(6, 10);String month = arg0.substring(10, 12);String day = arg0.substring(12, 14);return year + "-" + month + "-" + day;}

10、根据身份证获取年龄

public static String getAge(String arg0) {String year = arg0.substring(6, 10);SimpleDateFormat sdf = new SimpleDateFormat("yyyy");String nowYear = sdf.format(System.currentTimeMillis());int age = Integer.valueOf(nowYear) - Integer.valueOf(year);return age + "";}

11、String字符串判空

public static boolean checkNullMethod(String arg0) {if(arg0 == null)return false;arg0 = arg0.trim();if (arg0 != null  && arg0.length() != 0 && !arg0.equals("null") && !arg0.equals("")) {return true;}return false;}

 
 

12、图片uri转换为bitmap

public Bitmap decodeUriAsBitmap(Uri uri) {Bitmap bitmap = null;try {bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri));} catch (FileNotFoundException e) {e.printStackTrace();return null;}return bitmap;}

13、动态设置item中listview的高度

public static void setListheight(ListView listview) {ListAdapter listadapter = listview.getAdapter();if (listadapter == null) {return;}int totalheight = 0;for (int i = 0; i < listadapter.getCount(); i++) {View listItem = listadapter.getView(i, null, listview);listItem.measure(0, 0);totalheight += listItem.getMeasuredHeight();}ViewGroup.LayoutParams params = listview.getLayoutParams();params.height = totalheight+ (listview.getDividerHeight() * (listadapter.getCount() - 1));listview.setLayoutParams(params);}

14、获取应用版本名称,此处是versionName

public String getVersionName() {String versionName = "v1.0";try {PackageManager pm = context.getPackageManager();PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);versionName = pi.versionName;} catch (NameNotFoundException e) {e.printStackTrace();}return versionName;}

15、获取应用版本号,此处是versionCode

public int getVersionCode() {try {PackageManager pm = context.getPackageManager();PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);return pi.versionCode;} catch (NameNotFoundException e) {e.printStackTrace();}return 0;}

16、关闭软键盘

public void closeInput(EditText ed_text) {InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);// 得到InputMethodManager的实例if (imm.isActive()) {imm.hideSoftInputFromWindow(ed_text.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);}}

17、根据uri获取路径,如果是uri路径则通过uri返回文件绝对路径

public String getUriPath(Uri fileUri) {Uri filePathUri = fileUri;if (fileUri != null) {/** content://  开头的uri*/if (fileUri.getScheme().toString().compareTo("content") == 0) {// 通过uri获取选中的图片文件路径String[] proj = { MediaStore.Images.Media.DATA };@SuppressWarnings("deprecation")Cursor cursor = ((Activity) context).managedQuery(fileUri,proj, null, null, null);int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);cursor.moveToFirst();// 最后根据索引值获取图片路径String path = cursor.getString(column_index);return path;}/** file://   开头的uri*/else if (fileUri.getScheme().compareTo("file") == 0) {String fileName = filePathUri.toString();fileName = filePathUri.toString().replace("file://", "");return fileName;}}return null;}

18、检测屏幕是否是锁屏状态;为true,表示有两种状态:a、屏幕是黑的 b、目前正处于解锁状态 。为false,表示目前未锁屏

public boolean getIsLockScreen(){KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);return mKeyguardManager.inKeyguardRestrictedInputMode();}

19、日期转换;long类型转成String类型

public static String longToString(long currentTime, String formatType) throws ParseException {Date date = longToDate(currentTime, formatType); // long类型转成Date类型String strTime = dateToString(date, formatType); // date类型转成Stringreturn strTime;}

20、日期转换;string类型转换为long类型

public static long stringToLong(String strTime, String formatType) throws ParseException {Date date = stringToDate(strTime, formatType); // String类型转成date类型if (date == null) {return 0;} else {long currentTime = dateToLong(date); // date类型转成long类型return currentTime;}}

21、日期转换;date类型转换为long类型

public static long dateToLong(Date date) {return date.getTime();}

22、日期转换;long类型转成date类型

public static Date longToDate(long currentTime, String formatType) throws ParseException {Date dateOld = new Date(currentTime); // 根据long类型的毫秒数生命一个date类型的时间String sDateTime = dateToString(dateOld, formatType); // 把date类型的时间转换为stringDate date = stringToDate(sDateTime, formatType); // 把String类型转换为Date类型return date;}

23、日期转换;String类型转成date类型

public static Date stringToDate(String strTime, String formatType) throws ParseException {SimpleDateFormat formatter = new SimpleDateFormat(formatType);Date date = null;try {date = formatter.parse(strTime);} catch (java.text.ParseException e) {e.printStackTrace();}return date;}

24、date类型转换为String类型; formatType格式为 yyyy-MM-dd HH:mm:ss(yyyy年MM月dd日  HH时mm分ss秒); data为Date类型的时间

public static String dateToString(Date data, String formatType) {return new SimpleDateFormat(formatType).format(data);}

25、隐藏系统级别导航

public static void hideVirtualButtons(Activity activity) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE);}}

26、获取系统内存剩余

public static long getAvailableMemory(Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();am.getMemoryInfo(memoryInfo);return memoryInfo.availMem;}

27、判断APP是否在前台

public static boolean isAppOnForeground(Context context) {ActivityManager activityManager = (ActivityManager) context.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);String packageName = context.getApplicationContext().getPackageName();List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();if (appProcesses == null)return false;for (RunningAppProcessInfo appProcess : appProcesses) {if (appProcess.processName.equals(packageName)&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {return true;}}return false;}

28、判断SD卡是否可用

public static boolean hasSdcard() {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {return true;} return false;}

29、复制文件

public static void copyfile(File fromFile, File toFile){if(toFile.exists()){toFile.delete();}FileInputStream fosform;try {fosform = new FileInputStream(fromFile);FileOutputStream fosto = new FileOutputStream(toFile);byte b[] = new byte[1024];int len;while((len = fosform.read(b)) > 0){fosto.write(b,0,len);}fosform.close();fosto.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

30、转换文件大小

public static String getFormetFileSize(){long fileS = getCacheSize();DecimalFormat df = new DecimalFormat("#0.00");String fileSizeString = "";if (fileS < 1024){fileSizeString = df.format((double) fileS) + "B";}else if (fileS < 1048576){fileSizeString = df.format((double) fileS / 1024) + "K";}else if (fileS < 1073741824){fileSizeString = df.format((double) fileS / 1048576) + "M";}else{fileSizeString = df.format((double) fileS / 1073741824) + "G";}return fileSizeString;}

31、保存要缓存的数据到私有文件

public void saveDatasInFile(String xmlString, String fileName) {FileOutputStream fos = null;try{fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);fos.write(xmlString.getBytes());fos.flush();}catch(Exception e){e.printStackTrace();}finally{try {fos.close();} catch (Exception e) {}}}

32、读取私有文件缓存的数据

public void readDatasInFile(final String fileName,final readFileCallback callback){  try {  FileInputStream fin = context.openFileInput(fileName);  //获取文件长度  int lenght = fin.available();  byte[] buffer = new byte[lenght];  fin.read(buffer);  //将byte数组转换成指定格式的字符串  String result = new String(buffer,"utf-8");  callback.readFile(result);} catch (Exception e) {  e.printStackTrace();  }  }  public interface readFileCallback{public void readFile(String string);}

33、获取视频封面

public static String getVideoThumbPath(Context context, String path) {String thumbPath = null;Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(path, MediaStore.Video.Thumbnails.FULL_SCREEN_KIND);File file = SDUtils.getCreatFile(context, SDUtils.imgCachePicUrl, System.currentTimeMillis() + ".jpg");FileOutputStream fOut = null;try {fOut = new FileOutputStream(file);bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);fOut.flush();fOut.close();} catch (IOException e) {return null;}thumbPath = file.getAbsolutePath();return thumbPath;}


34、okhttp3打印请求参数(表单提交方式)

private static String bodyToString(final Request request){try {final Request copy = request.newBuilder().build();final Buffer buffer = new Buffer();copy.body().writeTo(buffer);String s = buffer.readUtf8();return URLDecoder.decode(s, "UTF-8");} catch (final IOException e) {return "did not work";
}


持续更新...












































这篇关于把项目中常用的小工具做个总结吧,方便自己以后用到的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976141

相关文章

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push