我是靠谱客的博主 机灵御姐,最近开发中收集的这篇文章主要介绍Android工具类 - 常用方法(更新中……)写在前面一、工具类模板二、工具类的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 写在前面
  • 一、工具类模板
    • 模板
    • 使用方式
  • 二、工具类的方法
    • 获取顶部状态栏高度
    • 将dp值转为px值
    • 将毫秒值转为易于阅读的形式
    • 将字节(B)数转为KB、MB和GB
    • 判断wifi是否连接
    • 判断是否有网络
    • 将Date类型的值转为易于阅读的形式
    • 将字符串类型的时间转换为Date类型

写在前面

欢迎阅读我的另一篇文章
如果你有问题欢迎咨询我,作者联系方式QQ/WX相同:860326470



一、工具类模板

这里是单例写法,推荐使用单例,如果不使用单例,那么需要在方法前加上static关键字,例如public static int 方法名(){}。下面的模板没有任何方法,需要添加需要的方法才能使用。

模板

我的工具类起的名字是MyUtils,你可以换成你自己喜欢的名字。

public class MyUtils {
private static MyUtils instance;
public static MyUtils getInstance() {
if (instance == null) {
instance = new MyUtils();
}
return instance;
}
}

使用方式

MyUtils.getInstance().方法名()


二、工具类的方法

复制之后直接粘贴进模板即可

获取顶部状态栏高度

public int getStatusBarHeight(Context context) {
int statusBarHeight = -1;
//获取status_bar_height资源的ID
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
//根据资源ID获取响应的尺寸值
statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
}
return statusBarHeight;
}

将dp值转为px值

因为类似于layoutparams.height需要传入px值,但我们一般都习惯使用dp值

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

将毫秒值转为易于阅读的形式

例如:“3时15分1秒”,传入超过24*60*60的值(也就是一天)则返回null,常用作考试倒计时,你可类比该方法,更改为带天、甚至年的形式

public String formatTime(int time) {
if (time / 60 == 0) {
return "0时0分" + time + "秒";
} else if (time / (60 * 60) == 0) {
return "0时" + time / 60 + "分" + time % 60 + "秒";
} else if (time / (24 * 60 * 60) == 0) {
return time / (60 * 60) + "时" + time % 3600 / 60 + "分" + time % 60 + "秒";
} else {
return null;
}
}

将字节(B)数转为KB、MB和GB

例如:传入1024,返回"1KB"

public String formatFileSize(long size) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString;
if (size < 1024) {
fileSizeString = size + "B";
} else if (size < 1048576) {
fileSizeString = size / 1024 + "KB";
} else if (size < 1073741824) {
fileSizeString = df.format((double) size / 1048576) + "MB";
} else if (size < 1073741824 * 1024L) {
fileSizeString = df.format((double) size / 1073741824) + "GB";
} else {
fileSizeString = "文件过大";
}
return fileSizeString;
}

判断wifi是否连接

使用前需要在AndroidManifest.xml文件中添加网络访问权限(和<application>标签同级的地方)

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
public boolean isWifiConnected(Context context) {
if (context != null) {
//获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取NetworkInfo对象
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
//判断NetworkInfo对象是否为空 并且类型是否为MOBILE
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return networkInfo.isAvailable();
}
}
return false;
}

判断是否有网络

同上,使用前需要添加网络访问权限

public boolean isNetworkConnected(Context context) {
if (context != null) {
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// 获取NetworkInfo对象
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
//判断NetworkInfo对象是否为空
if (networkInfo != null)
return networkInfo.isAvailable();
}
return false;
}

将Date类型的值转为易于阅读的形式

例如:返回"2020年01月01日 12时00分00秒"

@SuppressLint("SimpleDateFormat")
public String formatDate(Date date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
return simpleDateFormat.format(date);
}

将字符串类型的时间转换为Date类型

其中的@SneakyThrows注解是为了简化try/catch代码块和throws的。使用该注解之前需要在maven或gradle中导入Lombok包并且在Android Studio或Intellij IDEA中,左上角的File-Settings-Plugins安装Lombok插件

@SneakyThrows
@SuppressLint("SimpleDateFormat")
public Date parseDate(String dateString) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
TimeZone timeZone = TimeZone.getTimeZone("UTC");
simpleDateFormat.setTimeZone(timeZone);
return simpleDateFormat.parse(dateString);
}

最后

以上就是机灵御姐为你收集整理的Android工具类 - 常用方法(更新中……)写在前面一、工具类模板二、工具类的方法的全部内容,希望文章能够帮你解决Android工具类 - 常用方法(更新中……)写在前面一、工具类模板二、工具类的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部