-
@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;
}
/**
-
@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高级架构师
由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记做整理一份资料。
需要的朋友可以**私信【学习】**我分享给你,希望里面的资料可以给你们一个更好的学习参考。
或者直接点击下面链接免费获取
- 330页PDF Android学习核心笔记(内含上面8大板块)
-
Android学习的系统对应视频
-
Android进阶的系统对应学习资料
- Android BAT部分大厂面试题(有解析)
好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。
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高级架构师
由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记做整理一份资料。
需要的朋友可以**私信【学习】**我分享给你,希望里面的资料可以给你们一个更好的学习参考。
或者直接点击下面链接免费获取
- 330页PDF Android学习核心笔记(内含上面8大板块)
[外链图片转存中…(img-JZbuD0go-1710333029579)]
[外链图片转存中…(img-jaQC6dlp-1710333029580)]
-
Android学习的系统对应视频
-
Android进阶的系统对应学习资料
[外链图片转存中…(img-UGNfmGKh-1710333029580)]
- Android BAT部分大厂面试题(有解析)
[外链图片转存中…(img-Nm4VUIPz-1710333029580)]
好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。