转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72843153

1.ToastUtil.class(展示Toast的工具类)

import android.content.Context;import android.widget.Toast;/** * Created by mythmayor on 2016/12/14. */public class ToastUtil {    private static String oldMsg;    protected static Toast toast = null;    private static long oneTime = 0;    private static long twoTime = 0;    public static void showToast(Context context, String s) {        if (toast == null) {            toast = Toast.makeText(context, s, Toast.LENGTH_SHORT);            toast.show();            oneTime = System.currentTimeMillis();        } else {            twoTime = System.currentTimeMillis();            if (s.equals(oldMsg)) {                if (twoTime - oneTime > Toast.LENGTH_SHORT) {                    toast.show();                }            } else {                oldMsg = s;                toast.setText(s);                toast.show();            }        }        oneTime = twoTime;    }    public static void showToast(Context context, int resId) {        showToast(context, context.getString(resId));    }}

2.PrefUtil.class(管理SharedPreferences的工具类)

import android.content.Context;import android.content.SharedPreferences;/** * Created by mythmayor on 2016/12/14. * 

* 专门访问和设置SharePreference的工具类, 保存和配置一些设置信息 */public class PrefUtil { private static final String SHARE_PREFS_NAME = "mythmayor"; public static void putBoolean(Context ctx, String key, boolean value) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); pref.edit().putBoolean(key, value).commit(); } public static boolean getBoolean(Context ctx, String key, boolean defaultValue) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); return pref.getBoolean(key, defaultValue); } public static void putString(Context ctx, String key, String value) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); pref.edit().putString(key, value).commit(); } public static String getString(Context ctx, String key, String defaultValue) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); return pref.getString(key, defaultValue); } public static void putInt(Context ctx, String key, int value) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); pref.edit().putInt(key, value).commit(); } public static int getInt(Context ctx, String key, int defaultValue) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); return pref.getInt(key, defaultValue); } public static void clear(Context ctx) { SharedPreferences pref = ctx.getSharedPreferences(SHARE_PREFS_NAME, Context.MODE_PRIVATE); pref.edit().clear().commit(); }}

3.IntentUtil.class(Activity跳转的工具类)

import android.content.Context;import android.content.Intent;import android.os.Bundle;/** * Created by mythmayor on 2016/12/14. */public class IntentUtil {    public static void startActivity(Context context, Class<?> cls) {        Intent intent = new Intent();        intent.setClass(context, cls);        context.startActivity(intent);    }    public static void startActivityWithExtra(Context context, Bundle bundle, Class<?> cls) {        Intent intent = new Intent();        intent.putExtras(bundle);        intent.setClass(context, cls);        context.startActivity(intent);    }    public static void startActivityClearTask(Context context, Class<?> cls) {        Intent intent = new Intent();        intent.setClass(context, cls);        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }    public static void startActivityClearTaskWithExtra(Context context, Bundle bundle, Class<?> cls) {        Intent intent = new Intent();        intent.putExtras(bundle);        intent.setClass(context, cls);        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }    public static void startIntentActivity(Context context, String mTitle, String url, Class<?> cls) {        Intent intent = new Intent();        intent.setClass(context, cls);        intent.putExtra(MyConstant.INTENT_EXTRA_TITLE, mTitle);        intent.putExtra(MyConstant.INTENT_EXTRA_URL, url);        context.startActivity(intent);    }}

4.FileUtil.class(文件管理工具类)

import java.io.File;import java.text.DecimalFormat;/** * Created by mythmayor on 2016/12/26. */public class FileUtil {    /**     * 递归计算文件夹大小     *     * @param f     * @return     * @throws Exception     */    public static long getFileSize(File f) throws Exception {        long size = 0;        File[] flist = f.listFiles();        for (int i = 0; i < flist.length; i++) {            if (flist[i].isDirectory()) {                size = size + getFileSize(flist[i]);            } 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 jsonToMap(String jsonString) {        Map map = new HashMap();        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> jsonToList(String jsonArrayString) {        List> list = new ArrayList>();        try {            JSONArray array = new JSONArray(jsonArrayString);            for (int i = 0; i < array.length(); i++) {                JSONObject json = array.getJSONObject(i);                Map map = jsonToMap(json.toString());                list.add(map);            }        } catch (JSONException e) {            e.printStackTrace();            return null;        }        return list;    }    /**     * @param json     * @return     */    public static Map jsonToMap(JSONObject json) {        Map map = new HashMap();        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> jsonToList(JSONArray array) {        List> list = new ArrayList>();        try {            for (int i = 0; i < array.length(); i++) {                JSONObject json = array.getJSONObject(i);                Map 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;    }    /**     * @param array     * @param index     * @return     */    public static int getInt(JSONArray array, int index) {        try {            return array.getInt(index);        } catch (JSONException e) {            e.printStackTrace();        }        return 0;    }    /**     * @param json     * @param name     * @return     */    public static String getString(JSONObject json, String name) {        if (json.has(name)) {            try {                if (json.has(name) && !json.getString(name).equals("null") && json.getString(name) != "")                    return json.getString(name);                return "";            } catch (JSONException e) {                e.printStackTrace();            }        }        return "";    }    /**     * @param array     * @param index     * @return     */    public static String getString(JSONArray array, int index) {        String s = "";        try {            s = array.getString(index);        } catch (JSONException e) {            e.printStackTrace();        }        return s;    }    /**     * @param json     * @param arrayName     * @return     */    public static JSONArray getJSONArray(JSONObject json, String arrayName) {        JSONArray array = new JSONArray();        try {            if (json.has(arrayName))                array = json.getJSONArray(arrayName);        } catch (JSONException e) {            e.printStackTrace();        }        return array;    }    /**     * @param array     * @param index     * @return     */    public static JSONObject getJSONObject(JSONArray array, int index) {        JSONObject json = new JSONObject();        try {            json = array.getJSONObject(index);        } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return json;    }    /**     * @param json     * @param name     * @return     */    public static JSONObject getJSONObject(JSONObject json, String name) {        JSONObject json2 = new JSONObject();        try {            if (json.has(name))                json2 = json.getJSONObject(name);        } catch (JSONException e) {            e.printStackTrace();        }        return json2;    }//  public static String resolveUri(String uri){//      return Constants.URI+uri;//  }}

10.MyCountDownTimer.class(验证码倒计时及重新发送验证码的工具类)

import android.os.CountDownTimer;import android.widget.Button;/** * Created by mythmayor on 2017/4/17. */public class MyCountDownTimer extends CountDownTimer {    private Button mBtn;    private int mEnable;    private int mDisable;    /**     * @param millisInFuture    The number of millis in the future from the call     *                          to {@link #start()} until the countdown is done and {@link #onFinish()}     *                          is called.     * @param countDownInterval The interval along the way to receive     *                          {@link #onTick(long)} callbacks.     */    public MyCountDownTimer(long millisInFuture, long countDownInterval, Button btn, int enable, int disable) {        super(millisInFuture, countDownInterval);        mBtn = btn;        mEnable = enable;        mDisable = disable;    }    //计时过程    @Override    public void onTick(long l) {        //防止计时过程中重复点击        mBtn.setClickable(false);        mBtn.setText(l / 1000 + "s");        //设置按钮背景色        mBtn.setBackgroundResource(mDisable);    }    //计时完毕的方法    @Override    public void onFinish() {        //重新给Button设置文字        mBtn.setText("重新获取验证码");        //设置可点击        mBtn.setClickable(true);        //设置按钮背景色        mBtn.setBackgroundResource(mEnable);    }}

11.ProgressDlgUtil.class(ProgressDialog使用的工具类)

import android.app.ProgressDialog;import android.content.Context;/** * Created by mythmayor on 2017/3/29. */public class ProgressDlgUtil {    private static ProgressDialog progressDlg = null;    /**     * 启动进度条     * @param ctx 当前的activity     * @param content 进度条显示的信息     */    public static void show(Context ctx, String content) {        if (null == progressDlg) {            progressDlg = new ProgressDialog(ctx);            progressDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条的形式为圆形转动的进度条            //progressDlg.setTitle("提示");//设置进度条标题            progressDlg.setMessage(content);//提示的消息            progressDlg.setIndeterminate(false);            progressDlg.setCancelable(false);            //progressDlg.setIcon(R.drawable.ic_launcher_scale);            progressDlg.show();        }    }    /**     * 结束进度条     */    public static void dismiss() {        if (null != progressDlg) {            progressDlg.dismiss();            progressDlg = null;        }    }}

更多相关文章

  1. android中dialog工具类的实现(多种dialog的创建)
  2. Picasso picasso-强大的Android图片下载缓存库
  3. android application级别的图片缓存
  4. Android中获取指定日期是星期几
  5. Android之录音工具类
  6. Android图片缓存加强版(LruCache+DiskLruCache+软引用)
  7. Android 终端上的开发工具
  8. Android Drawable工具类
  9. android 借助AccessibilityService实现模拟点击功能-几个工具类(

随机推荐

  1. 获取所有网站的错误,[重复]
  2. jquery ajax在调用之后将无法工作
  3. 在Capistrano任务中引用当前服务器
  4. 在simplexml_load_file中加载url时出错
  5. 《PHP核心技术与最佳实践》P37中间有一句
  6. php把从数据库读取出来的数据存放到数组
  7. php 谈谈我对session, cookies和jwt的理
  8. 当我将它移动到另一台服务器时,计数器将无
  9. 案例:用Redis来存储关注关系(php版)
  10. 如何在进行单元测试时覆盖php://输入