写点什么

Android - 开发常用工具类 Utils,真的已经讲烂了

用户头像
Android架构
关注
发布于: 刚刚

} else {


size = size + flist[i].length();


}


}


return size;


}


/**


  • 得到字符串方式的文件大小

  • @param fileS ,单位 b

  • @return


*/


public static String FormetFileSize(long fileS) {


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;


}


}

5.DensityUtil.class(单位转换和获取屏幕宽高的工具类)

import android.app.Activity;


import android.content.Context;


import android.util.DisplayMetrics;


/**


  • Created by mythmayor on 2016/12/14.


*/


public class DensityUtil {


/**


  • 将 px 值转换为 dip 或 dp 值,保证尺寸大小不变

  • @param pxValue 像素值

  • @param context Context 对象

  • @return dp 值


*/


public static int px2dip(float pxValue, Context context) {


float scale = getDensity(context);


return (int) (pxValue / scale + 0.5f);


}


/**


  • 将 dip 或 dp 值转换为 px 值,保证尺寸大小不变

  • @param dipValue dip 数值

  • @param context Context 对象

  • @return 像素值


*/


public static int dip2px(float dipValue, Context context) {


float scale = getDensity(context);


return (int) (dipValue * scale + 0.5f);


}


/**


  • 将 px 值转换为 sp 值,保证文字大小不变

  • @param pxValue 像素值

  • @param context Context 对象

  • @return 返回 sp 数值


*/


public static int px2sp(float pxValue, Context context) {


float scale = getDensity(context);


return (int) (pxValue / scale + 0.5f);


}


/**


  • 将 sp 值转换为 px 值,保证文字大小不变

  • @param spValue sp 数值

  • @param context Context 对象

  • @return 返回像素值


*/


public static int sp2px(float spValue, Context context) {


float scale = getDensity(context);


return (int) (spValue * scale + 0.5f);


}


/**


  • 取得手机屏幕的密度

  • @param context 上下文

  • @return 手机屏幕的密度


*/


public static float getDensity(Context context) {


float scale = context.getResources().getDisplayMetrics().density;


return scale;


}


/**


  • 获取屏幕高

  • @param activity

  • @return 手机屏幕的高度


*/


public static int getScreenHeight(Activity activity) {


DisplayMetrics dm = new DisplayMetrics();


activity.getWindowManager().getDefaultDisplay().getMetrics(dm);


return dm.heightPixels;


}


/**


  • 获取屏幕宽

  • @param activity

  • @return 手机屏幕的宽度


*/


public static int getScreenWidth(Activity activity) {


DisplayMetrics dm = new DisplayMetrics();


activity.getWindowManager().getDefaultDisplay().getMetrics(dm);


return dm.widthPixels;


}


}

6.ResourceUtil.class(获取资源文件的工具类)

import android.app.Activity;


import android.content.Context;


import android.content.res.Resources;


import android.graphics.drawable.Drawable;


import android.util.DisplayMetrics;


public class CommonUtil {


/**


  • 获取 Resource 对象


*/


public static Resources getResources() {


return MainApplication.getContext().getResources();


}


/**


  • 获取 Drawable 资源


*/


public static Drawable getDrawable(int resId) {


return getResources().getDrawable(resId);


}


/**


  • 获取字符串资源


*/


public static String getString(int resId) {


return getResources().getString(resId);


}


/**


  • 获取 color 资源


*/


public static int getColor(int resId) {


return getResources().getColor(resId);


}


/**


  • 获取 dimens 资源


*/


public static float getDimens(int resId) {


return getResources().getDimension(resId);


}


/**


  • 获取字符串数组资源


*/


public static String[] getStringArray(int resId) {


return getResources().getStringArray(resId);


}

7.DateUtil.class(日期时间转换的工具类)

import android.annotation.SuppressLint;


import android.text.format.Time;


import java.text.SimpleDateFormat;


import java.util.Date;


/**


  • 时间、日期转换工具

  • Created by mythmayor on 2016/9/14.


*/


public class DateUtils {


/**


  • 获取当前时间

  • @return 年月日时分秒字符串


*/


public static String getCurrentTime() {


Time time = new Time("GMT+8");


time.setToNow();


String year = "" + time.year;


int imonth = time.month + 1;


String month = imonth > 9 ? "" + imonth : "0" + imonth;


String day = time.monthDay > 9 ? "" + time.monthDay : "0"


  • time.monthDay;


String hour = (time.hour + 8) > 9 ? "" + (time.hour + 8) : "0"


  • (time.hour + 8);


String minute = time.minute > 9 ? "" + time.minute : "0" + time.minute;


String sec = time.second > 9 ? "" + time.second : "0" + time.second;


String currentTime = year + month + day + hour + minute + sec;


return currentTime;


}


//获取 日期/时/分/秒


@SuppressLint("SimpleDateFormat")


public static String getDateTime(long time) {


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


String date = sdf.format(new Date(time));


return date;


}


//获取 日期/时/分


@SuppressLint("SimpleDateFormat")


public static String getHourMinute(long time) {


SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分");


String date = sdf.format(new Date(time));


return date;


}


//获取 日期年月日


@SuppressLint("SimpleDateFormat")


public static String getYearMonthDay(long time) {


SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日");


String date = sdf.format(new Date(time));


return date;


}


//获取日期年月


public static String getYearMonth(long time){


SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月");


String date = sdf.format(new Date(time));


return date;


}


//获取日期年月


public static String getYearMonth2(long time){


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");


String date = sdf.format(new Date(time));


return date;


}


//获取日期年


public static String getYear(long time){


SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年");


String date = sdf.format(new Date(time));


return date;


}


//获取 时/分


public static String getTime(long time) {


SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");


String date = sdf.format(new Date(time));


return date;


}


}

8.GlideCacheUtil.class(管理 Glide 产生的缓存的工具类)

/**


  • Created by mythmayor on 2017/2/22.


*/


import android.content.Context;


import android.os.Looper;


import android.text.TextUtils;


import com.bumptech.glide.Glide;


import com.bumptech.glide.load.engine.cache.ExternalCacheDiskCacheFactory;


import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;


import java.io.File;


import java.math.BigDecimal;


/**Glide 缓存工具类


  • Created by mythmayor on 2016/10/10.


*/


public class GlideCacheUtil {


private static GlideCacheUtil inst;


public static GlideCacheUtil getInstance() {


if (inst == null) {


inst = new GlideCacheUtil();


}


return inst;


}


/**


  • 清除图片磁盘缓存


*/


public void clearImageDiskCache(final Context context) {


try {


if (Looper.myLooper() == Looper.getMainLooper()) {


new Thread(new Runnable() {


@Override


public void run() {


Glide.get(context).clearDiskCache();


// BusUtil.getBus().post(new GlideCacheClearSuccessEvent());


}


}).start();


} else {


Glide.get(context).clearDiskCache();


}


} catch (Exception e) {


e.printStackTrace();


}


}


/**


  • 清除图片内存缓存


*/


public void clearImageMemoryCache(Context context) {


try {


if (Looper.myLooper() == Looper.getMainLooper()) { //只能在主线程执行


Glide.get(context).clearMemory();


}


} catch (Exception e) {


e.printStackTrace();


}


}


/**


  • 清除图片所有缓存


*/


public void clearImageAllCache(Context context) {


clearImageDiskCache(context);


clearImageMemoryCache(context);


String ImageExternalCatchDir=context.getExternalCacheDir()+ ExternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR;


deleteFolderFile(ImageExternalCatchDir, true);


}


/**


  • 获取 Glide 造成的缓存大小

  • @return CacheSize


*/


public String getCacheSize(Context context) {


try {


return getFormatSize(getFolderSize(new File(context.getCacheDir() + "/"+ InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR)));


} catch (Exception e) {


e.printStackTrace();


}


return "";


}


/**


  • 获取指定文件夹内所有文件大小的和

  • @param file file

  • @return size

  • @throws Exception


*/


private long getFolderSize(File file) throws Exception {


long size = 0;


try {


File[] fileList = file.listFiles();


for (File aFileList : fileList) {


if (aFileList.isDirectory()) {


size = size + getFolderSize(aFileList);


} else {


size = size + aFileList.length();


}


}


} catch (Exception e) {


e.printStackTrace();


}


return size;


}


/**


  • 删除指定目录下的文件,这里用于缓存的删除

  • @param filePath filePath

  • @param deleteThisPath deleteThisPath


*/


private void deleteFolderFile(String filePath, boolean deleteThisPath) {


if (!TextUtils.isEmpty(filePath)) {


try {


File file = new File(filePath);


if (file.isDirectory()) {


File files[] = file.listFiles();


for (File file1 : files) {


deleteFolderFile(file1.getAbsolutePath(), true);


}


}


if (deleteThisPath) {


if (!file.isDirectory()) {


file.delete();


} else {


if (file.listFiles().length == 0) {


file.delete();


}


}


}


} catch (Exception e) {


e.printStackTrace();


}


}


}


/**


  • 格式化单位

  • @param size size

  • @return size


*/


private static String getFormatSize(double size) {


double kiloByte = size / 1024;


if (kiloByte < 1) {


return size + "B";


}


double megaByte = kiloByte / 1024;


if (megaByte < 1) {


BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));


return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";


}


double gigaByte = megaByte / 1024;


if (gigaByte < 1) {


BigDecimal result2 = new BigDecimal(Double.toString(megaByte));


return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";


}


double teraBytes = gigaByte / 1024;


if (teraBytes < 1) {


BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));


return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";


}


BigDecimal result4 = new BigDecimal(teraBytes);


return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";


}


}

9.JsonUtil.class(管理 Json 数据的工具类)

import org.json.JSONArray;


import org.json.JSONException;


import org.json.JSONObject;


import java.util.ArrayList;


import java.util.HashMap;


import java.util.Iterator;


import java.util.List;


import java.util.Map;


public class JsonUtils {


public static Map<String, Object> jsonToMap(String jsonString) {


Map<String, Object> map = new HashMap<String, Object>();


try {


JSONObject json = new JSONObject(jsonString);


Iterator<?> it = json.keys();


String key = null;


Object value = null;


while (it.hasNext()) {


key = it.next().toString();


value = json.get(key);


if (value.toString().equals("null") || value.toString().equals("")) {


value = "";


}


map.put(key, value);


}


} catch (JSONException e) {


// TODO Auto-generated catch block


e.printStackTrace();


return null;


}


return map;


}


public static JSONObject mapToJson(@SuppressWarnings("rawtypes") Map map) {


JSONObject json = null;


json = new JSONObject(map);


return json;


}


public static List<Map<String, Object>> jsonToList(String jsonArrayString) {


List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


try {


JSONArray array = new JSONArray(jsonArrayString);


for (int i = 0; i < array.length(); i++) {


JSONObject json = array.getJSONObject(i);


Map<String, Object> map = jsonToMap(json.toString());


list.add(map);


}


} catch (JSONException e) {


e.printStackTrace();


return null;


}


return list


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


;


}


/**


  • @param json

  • @return


*/


public static Map<String, Object> jsonToMap(JSONObject json) {


Map<String, Object> map = new HashMap<String, Object>();


try {


Iterator<?> it = json.keys();


String key = null;


Object value = null;


while (it.hasNext()) {


key = it.next().toString();


value = json.get(key);


if (value.toString().equals("null") || value.toString().equals("")) {


value = "";


}


map.put(key, value);


}


} catch (JSONException e) {


e.printStackTrace();


return null;


}


return map;


}


/**


  • @param array

  • @return


*/


public static List<Map<String, Object>> jsonToList(JSONArray array) {


List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();


try {


for (int i = 0; i < array.length(); i++) {


JSONObject json = array.getJSONObject(i);


Map<String, Object> map = jsonToMap(json.toString());


list.add(map);


}


} catch (JSONException e) {


e.printStackTrace();


return null;


}


return list;


}


/**


  • @param json

  • @param name

  • @return


*/


public static int getInt(JSONObject json, String name) {


if (json.has(name)) {


try {


if (!json.getString(name).equals("null") & json.getString(name) != "")


return json.getInt(name);


return -100;


} catch (JSONException e) {


e.printStackTrace();


}


}


return 0;


}

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android - 开发常用工具类Utils,真的已经讲烂了