美文网首页
android 工具类

android 工具类

作者: liby06 | 来源:发表于2017-03-12 21:41 被阅读83次

    为什写这个文章呢,突然看到简书上中奖了,可是要一篇公开的文章才可以领取。挺好奇这个幸运奖是什么,对于我这个二十多年中奖绝缘体还是挺有吸引力的。可是自己没有什么才华,收集了一些工具类,按需自取。

    ZIP文件工具类

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipException;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipOutputStream;
    
    /**
     * ZIP文件工具类
     */
    public class ZipUtils {
        private static final int BUFF_SIZE = 1024 * 1024; // 1M Byte
    
        /**
         * 批量压缩文件(夹)
         * 
         * @param resFileList
         *            要压缩的文件(夹)列表
         * @param zipFile
         *            生成的压缩文件
         * @throws IOException
         *             当压缩过程出错时抛出
         */
        public static void zipFiles(Collection<File> resFileList, File zipFile)
                throws IOException {
            ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(
                    new FileOutputStream(zipFile), BUFF_SIZE));
            for (File resFile : resFileList) {
                zipFile(resFile, zipout, "");
            }
            zipout.close();
        }
    
        /**
         * 批量压缩文件(夹)
         * 
         * @param resFileList
         *            要压缩的文件(夹)列表
         * @param zipFile
         *            生成的压缩文件
         * @param comment
         *            压缩文件的注释
         * @throws IOException
         *             当压缩过程出错时抛出
         */
        public static void zipFiles(Collection<File> resFileList, File zipFile,
                String comment) throws IOException {
            ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(
                    new FileOutputStream(zipFile), BUFF_SIZE));
            for (File resFile : resFileList) {
                zipFile(resFile, zipout, "");
            }
            zipout.setComment(comment);
            zipout.close();
        }
    
        /**
         * 解压缩一个文件
         * 
         * @param zipFile
         *            压缩文件
         * @param folderPath
         *            文件解压到指定目标路径
         * @throws IOException
         *             当解压缩过程出错时抛出
         */
        public static void upZipFile(File zipFile, String folderPath)
                throws ZipException, IOException {
            File desDir = new File(folderPath);
            if (!desDir.exists()) {
                desDir.mkdirs();
            }
            ZipFile zf = new ZipFile(zipFile);
            for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                InputStream in = zf.getInputStream(entry);
                String str = folderPath + File.separator + entry.getName();
                str = new String(str.getBytes("8859_1"), "GB2312");
                File desFile = new File(str);
                if (!desFile.exists()) {
                    File fileParentDir = desFile.getParentFile();
                    if (!fileParentDir.exists()) {
                        fileParentDir.mkdirs();
                    }
                    desFile.createNewFile();
                }
                OutputStream out = new FileOutputStream(desFile);
                byte buffer[] = new byte[BUFF_SIZE];
                int realLength;
                while ((realLength = in.read(buffer)) > 0) {
                    out.write(buffer, 0, realLength);
                }
                in.close();
                out.close();
            }
        }
    
        /**
         * 解压文件名包含传入文字的文件
         * 
         * @param zipFile
         *            压缩文件
         * @param folderPath
         *            目标文件夹
         * @param nameContains
         *            传入的文件匹配名
         * @throws ZipException
         *             压缩格式有误时抛出
         * @throws IOException
         *             IO错误时抛出
         */
        public static ArrayList<File> upZipSelectedFile(File zipFile,
                String folderPath, String nameContains) throws ZipException,
                IOException {
            ArrayList<File> fileList = new ArrayList<File>();
    
            File desDir = new File(folderPath);
            if (!desDir.exists()) {
                desDir.mkdir();
            }
    
            ZipFile zf = new ZipFile(zipFile);
            for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                if (entry.getName().contains(nameContains)) {
                    InputStream in = zf.getInputStream(entry);
                    String str = folderPath + File.separator + entry.getName();
                    str = new String(str.getBytes("8859_1"), "GB2312");
                    // str.getBytes("GB2312"),"8859_1" 输出
                    // str.getBytes("8859_1"),"GB2312" 输入
                    File desFile = new File(str);
                    if (!desFile.exists()) {
                        File fileParentDir = desFile.getParentFile();
                        if (!fileParentDir.exists()) {
                            fileParentDir.mkdirs();
                        }
                        desFile.createNewFile();
                    }
                    OutputStream out = new FileOutputStream(desFile);
                    byte buffer[] = new byte[BUFF_SIZE];
                    int realLength;
                    while ((realLength = in.read(buffer)) > 0) {
                        out.write(buffer, 0, realLength);
                    }
                    in.close();
                    out.close();
                    fileList.add(desFile);
                }
            }
            return fileList;
        }
    
        /**
         * 获得压缩文件内文件列表
         * 
         * @param zipFile
         *            压缩文件
         * @return 压缩文件内文件名称
         * @throws ZipException
         *             压缩文件格式有误时抛出
         * @throws IOException
         *             当解压缩过程出错时抛出
         */
        public static ArrayList<String> getEntriesNames(File zipFile)
                throws ZipException, IOException {
            ArrayList<String> entryNames = new ArrayList<String>();
            Enumeration<?> entries = getEntriesEnumeration(zipFile);
            while (entries.hasMoreElements()) {
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                entryNames.add(new String(getEntryName(entry).getBytes("GB2312"),
                        "8859_1"));
            }
            return entryNames;
        }
    
        /**
         * 获得压缩文件内压缩文件对象以取得其属性
         * 
         * @param zipFile
         *            压缩文件
         * @return 返回一个压缩文件列表
         * @throws ZipException
         *             压缩文件格式有误时抛出
         * @throws IOException
         *             IO操作有误时抛出
         */
        public static Enumeration<?> getEntriesEnumeration(File zipFile)
                throws ZipException, IOException {
            ZipFile zf = new ZipFile(zipFile);
            return zf.entries();
    
        }
    
        /**
         * 取得压缩文件对象的注释
         * 
         * @param entry
         *            压缩文件对象
         * @return 压缩文件对象的注释
         * @throws UnsupportedEncodingException
         */
        public static String getEntryComment(ZipEntry entry)
                throws UnsupportedEncodingException {
            return new String(entry.getComment().getBytes("GB2312"), "8859_1");
        }
    
        /**
         * 取得压缩文件对象的名称
         * 
         * @param entry
         *            压缩文件对象
         * @return 压缩文件对象的名称
         * @throws UnsupportedEncodingException
         */
        public static String getEntryName(ZipEntry entry)
                throws UnsupportedEncodingException {
            return new String(entry.getName().getBytes("GB2312"), "8859_1");
        }
    
        /**
         * 压缩文件
         * 
         * @param resFile
         *            需要压缩的文件(夹)
         * @param zipout
         *            压缩的目的文件
         * @param rootpath
         *            压缩的文件路径
         * @throws FileNotFoundException
         *             找不到文件时抛出
         * @throws IOException
         *             当压缩过程出错时抛出
         */
        private static void zipFile(File resFile, ZipOutputStream zipout,
                String rootpath) throws FileNotFoundException, IOException {
            rootpath = rootpath
                    + (rootpath.trim().length() == 0 ? "" : File.separator)
                    + resFile.getName();
            rootpath = new String(rootpath.getBytes("8859_1"), "GB2312");
            if (resFile.isDirectory()) {
                File[] fileList = resFile.listFiles();
                for (File file : fileList) {
                    zipFile(file, zipout, rootpath);
                }
            } else {
                byte buffer[] = new byte[BUFF_SIZE];
                BufferedInputStream in = new BufferedInputStream(
                        new FileInputStream(resFile), BUFF_SIZE);
                zipout.putNextEntry(new ZipEntry(rootpath));
                int realLength;
                while ((realLength = in.read(buffer)) != -1) {
                    zipout.write(buffer, 0, realLength);
                }
                in.close();
                zipout.flush();
                zipout.closeEntry();
            }
        }
    }
    
    

    日志工具类

    
    
    import android.util.Log;
    
    public class TLog {
        public static final String LOG_TAG = "custom";
        public static boolean DEBUG = true;
    
        public TLog() {
        }
    
        public static final void analytics(String log) {
            if (DEBUG)
                Log.d(LOG_TAG, log);
        }
    
        public static final void error(String log) {
            if (DEBUG)
                Log.e(LOG_TAG, "" + log);
        }
    
        public static final void log(String log) {
            if (DEBUG)
                Log.i(LOG_TAG, log);
        }
    
        public static final void log(String tag, String log) {
            if (DEBUG)
                Log.i(tag, log);
        }
    
        public static final void logv(String log) {
            if (DEBUG)
                Log.v(LOG_TAG, log);
        }
    
        public static final void warn(String log) {
            if (DEBUG)
                Log.w(LOG_TAG, log);
        }
    }
    
    

    时间的工具类

    
    import java.util.Date;
    import java.util.TimeZone;
    
    public class TimeZoneUtil {
    
        /**
         * 判断用户的设备时区是否为东八区(中国) 2014年7月31日
         * @return
         */
        public static boolean isInEasternEightZones() {
            boolean defaultVaule = true;
            if (TimeZone.getDefault() == TimeZone.getTimeZone("GMT+08"))
                defaultVaule = true;
            else
                defaultVaule = false;
            return defaultVaule;
        }
    
        /**
         * 根据不同时区,转换时间 2014年7月31日
         * @return
         */
        public static Date transformTime(Date date, TimeZone oldZone, TimeZone newZone) {
            Date finalDate = null;
            if (date != null) {
                int timeOffset = oldZone.getOffset(date.getTime())
                        - newZone.getOffset(date.getTime());
                finalDate = new Date(date.getTime() - timeOffset);
            }
            return finalDate;
        }
    }
    
    

    字符串操作工具包

    import android.text.TextUtils;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.TimeZone;
    import java.util.regex.Pattern;
    
    /**
     * 字符串操作工具包
     *
     */
    public class StringUtils {
        private final static Pattern emailer = Pattern
                .compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    
        private final static Pattern IMG_URL = Pattern
                .compile(".*?(gif|jpeg|png|jpg|bmp)");
    
        private final static Pattern URL = Pattern
                .compile("^(https|http)://.*?$(net|com|.com.cn|org|me|)");
    
        private final static ThreadLocal<SimpleDateFormat> dateFormater = new ThreadLocal<SimpleDateFormat>() {
            @Override
            protected SimpleDateFormat initialValue() {
                return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }
        };
    
        private final static ThreadLocal<SimpleDateFormat> dateFormater2 = new ThreadLocal<SimpleDateFormat>() {
            @Override
            protected SimpleDateFormat initialValue() {
                return new SimpleDateFormat("yyyy-MM-dd");
            }
        };
    
        private final static ThreadLocal<SimpleDateFormat> dateFormat3 = new ThreadLocal<SimpleDateFormat>() {
            @Override
            protected SimpleDateFormat initialValue() {
                return new SimpleDateFormat("yyyy-MM-dd HH:mm");
            }
        };
    
        /**
         * 将字符串转位日期类型
         *
         * @param sdate
         * @return
         */
        public static Date toDate(String sdate) {
            return toDate(sdate, dateFormater.get());
        }
    
        public static Date toDate(String sdate, SimpleDateFormat dateFormater) {
            try {
                return dateFormater.parse(sdate);
            } catch (Exception e) {
                return null;
            }
        }
    
        public static String getDateString(Date date) {
            return dateFormater.get().format(date);
        }
    
        public static String getDateString(String sdate) {
            return dateFormat3.get().format(toDate(sdate));
        }
    
        /**
         * 以友好的方式显示时间
         *
         * @param sdate
         * @return
         */
        public static String friendly_time(String sdate) {
            Date time = null;
    
            if (TimeZoneUtil.isInEasternEightZones())
                time = toDate(sdate);
            else
                time = TimeZoneUtil.transformTime(toDate(sdate),
                        TimeZone.getTimeZone("GMT+08"), TimeZone.getDefault());
    
            if (time == null) {
                return "Unknown";
            }
            String ftime = "";
            Calendar cal = Calendar.getInstance();
    
            // 判断是否是同一天
            String curDate = dateFormater2.get().format(cal.getTime());
            String paramDate = dateFormater2.get().format(time);
            if (curDate.equals(paramDate)) {
                int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);
                if (hour == 0)
                    ftime = Math.max(
                            (cal.getTimeInMillis() - time.getTime()) / 60000, 1)
                            + "分钟前";
                else
                    ftime = hour + "小时前";
                return ftime;
            }
    
            long lt = time.getTime() / 86400000;
            long ct = cal.getTimeInMillis() / 86400000;
            int days = (int) (ct - lt);
            if (days == 0) {
                int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);
                if (hour == 0)
                    ftime = Math.max(
                            (cal.getTimeInMillis() - time.getTime()) / 60000, 1)
                            + "分钟前";
                else
                    ftime = hour + "小时前";
            } else if (days == 1) {
                ftime = "昨天";
            } else if (days == 2) {
                ftime = "前天 ";
            } else if (days > 2 && days < 31) {
                ftime = days + "天前";
            } else if (days >= 31 && days <= 2 * 31) {
                ftime = "一个月前";
            } else if (days > 2 * 31 && days <= 3 * 31) {
                ftime = "2个月前";
            } else if (days > 3 * 31 && days <= 4 * 31) {
                ftime = "3个月前";
            } else {
                ftime = dateFormater2.get().format(time);
            }
            return ftime;
        }
    
        public static String friendly_time2(String sdate) {
            String res = "";
            if (isEmpty(sdate))
                return "";
    
            String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
            String currentData = StringUtils.getDataTime("MM-dd");
            int currentDay = toInt(currentData.substring(3));
            int currentMoth = toInt(currentData.substring(0, 2));
    
            int sMoth = toInt(sdate.substring(5, 7));
            int sDay = toInt(sdate.substring(8, 10));
            int sYear = toInt(sdate.substring(0, 4));
            Date dt = new Date(sYear, sMoth - 1, sDay - 1);
    
            if (sDay == currentDay && sMoth == currentMoth) {
                res = "今天 / " + weekDays[getWeekOfDate(new Date())];
            } else if (sDay == currentDay + 1 && sMoth == currentMoth) {
                res = "昨天 / " + weekDays[(getWeekOfDate(new Date()) + 6) % 7];
            } else {
                if (sMoth < 10) {
                    res = "0";
                }
                res += sMoth + "/";
                if (sDay < 10) {
                    res += "0";
                }
                res += sDay + " / " + weekDays[getWeekOfDate(dt)];
            }
    
            return res;
        }
    
    
        /**
         * 智能格式化
         */
        public static String friendly_time3(String sdate) {
            String res = "";
            if (isEmpty(sdate))
                return "";
    
            Date date = StringUtils.toDate(sdate);
            if (date == null)
                return sdate;
    
            SimpleDateFormat format = dateFormater2.get();
    
            if (isToday(date.getTime())) {
                format.applyPattern(isMorning(date.getTime()) ? "上午 hh:mm" : "下午 hh:mm");
                res = format.format(date);
            } else if (isYesterday(date.getTime())) {
                format.applyPattern(isMorning(date.getTime()) ? "昨天 上午 hh:mm" : "昨天 下午 hh:mm");
                res = format.format(date);
            } else if (isCurrentYear(date.getTime())) {
                format.applyPattern(isMorning(date.getTime()) ? "MM-dd 上午 hh:mm" : "MM-dd 下午 hh:mm");
                res = format.format(date);
            } else {
                format.applyPattern(isMorning(date.getTime()) ? "yyyy-MM-dd 上午 hh:mm" : "yyyy-MM-dd 下午 hh:mm");
                res = format.format(date);
            }
            return res;
        }
    
        /**
         * @return 判断一个时间是不是上午
         */
        public static boolean isMorning(long when) {
            android.text.format.Time time = new android.text.format.Time();
            time.set(when);
    
            int hour = time.hour;
            return (hour >= 0) && (hour < 12);
        }
    
        /**
         * @return 判断一个时间是不是今天
         */
        public static boolean isToday(long when) {
            android.text.format.Time time = new android.text.format.Time();
            time.set(when);
    
            int thenYear = time.year;
            int thenMonth = time.month;
            int thenMonthDay = time.monthDay;
    
            time.set(System.currentTimeMillis());
            return (thenYear == time.year)
                    && (thenMonth == time.month)
                    && (thenMonthDay == time.monthDay);
        }
    
        /**
         * @return 判断一个时间是不是昨天
         */
        public static boolean isYesterday(long when) {
            android.text.format.Time time = new android.text.format.Time();
            time.set(when);
    
            int thenYear = time.year;
            int thenMonth = time.month;
            int thenMonthDay = time.monthDay;
    
            time.set(System.currentTimeMillis());
            return (thenYear == time.year)
                    && (thenMonth == time.month)
                    && (time.monthDay - thenMonthDay == 1);
        }
    
        /**
         * @return 判断一个时间是不是今年
         */
        public static boolean isCurrentYear(long when) {
            android.text.format.Time time = new android.text.format.Time();
            time.set(when);
    
            int thenYear = time.year;
    
            time.set(System.currentTimeMillis());
            return (thenYear == time.year);
        }
    
        /**
         * 获取当前日期是星期几<br>
         *
         * @param dt
         * @return 当前日期是星期几
         */
        public static int getWeekOfDate(Date dt) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(dt);
            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
            if (w < 0)
                w = 0;
            return w;
        }
    
        /**
         * 判断给定字符串时间是否为今日
         *
         * @param sdate
         * @return boolean
         */
        public static boolean isToday(String sdate) {
            boolean b = false;
            Date time = toDate(sdate);
            Date today = new Date();
            if (time != null) {
                String nowDate = dateFormater2.get().format(today);
                String timeDate = dateFormater2.get().format(time);
                if (nowDate.equals(timeDate)) {
                    b = true;
                }
            }
            return b;
        }
    
        /**
         * 是否是相同的一天
         * @param sDate1 sDate1
         * @param sDate2 sDate2
         * @return
         */
        public static boolean isSameDay(String sDate1,String sDate2){
            if(TextUtils.isEmpty(sDate1) || TextUtils.isEmpty(sDate2)){
                return false;
            }
            boolean b = false;
            Date date1 = toDate(sDate1);
            Date date2 = toDate(sDate2);
            if(date1!= null && date2 != null){
                String d1 = dateFormater2.get().format(date1);
                String d2 = dateFormater2.get().format(date2);
                if (d1.equals(d2)) {
                    b = true;
                }
            }
            return b;
        }
    
        /**
         * 返回long类型的今天的日期
         *
         * @return
         */
        public static long getToday() {
            Calendar cal = Calendar.getInstance();
            String curDate = dateFormater2.get().format(cal.getTime());
            curDate = curDate.replace("-", "");
            return Long.parseLong(curDate);
        }
    
        public static String getCurTimeStr() {
            Calendar cal = Calendar.getInstance();
            String curDate = dateFormater.get().format(cal.getTime());
            return curDate;
        }
    
        /***
         * 计算两个时间差,返回的是的秒s
         *
         * @param dete1
         * @param date2
         * @return
         * @author 火蚁 2015-2-9 下午4:50:06
         */
        public static long calDateDifferent(String dete1, String date2) {
    
            long diff = 0;
    
            Date d1 = null;
            Date d2 = null;
    
            try {
                d1 = dateFormater.get().parse(dete1);
                d2 = dateFormater.get().parse(date2);
    
                // 毫秒ms
                diff = d2.getTime() - d1.getTime();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return diff / 1000;
        }
    
        /**
         * 判断给定字符串是否空白串。 空白串是指由空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串,返回true
         *
         * @param input
         * @return boolean
         */
        public static boolean isEmpty(String input) {
            if (input == null || "".equals(input))
                return true;
    
            for (int i = 0; i < input.length(); i++) {
                char c = input.charAt(i);
                if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
                    return false;
                }
            }
            return true;
        }
    
        /**
         * 判断是不是一个合法的电子邮件地址
         *
         * @param email
         * @return
         */
        public static boolean isEmail(String email) {
            if (email == null || email.trim().length() == 0)
                return false;
            return emailer.matcher(email).matches();
        }
    
        /**
         * 判断一个url是否为图片url
         *
         * @param url
         * @return
         */
        public static boolean isImgUrl(String url) {
            if (url == null || url.trim().length() == 0)
                return false;
            return IMG_URL.matcher(url).matches();
        }
    
        /**
         * 判断是否为一个合法的url地址
         *
         * @param str
         * @return
         */
        public static boolean isUrl(String str) {
            if (str == null || str.trim().length() == 0)
                return false;
            return URL.matcher(str).matches();
        }
    
        /**
         * 字符串转整数
         *
         * @param str
         * @param defValue
         * @return
         */
        public static int toInt(String str, int defValue) {
            try {
                return Integer.parseInt(str);
            } catch (Exception e) {
            }
            return defValue;
        }
    
        /**
         * 对象转整数
         *
         * @param obj
         * @return 转换异常返回 0
         */
        public static int toInt(Object obj) {
            if (obj == null)
                return 0;
            return toInt(obj.toString(), 0);
        }
    
        /**
         * 对象转整数
         *
         * @param obj
         * @return 转换异常返回 0
         */
        public static long toLong(String obj) {
            try {
                return Long.parseLong(obj);
            } catch (Exception e) {
            }
            return 0;
        }
    
        /**
         * 字符串转布尔值
         *
         * @param b
         * @return 转换异常返回 false
         */
        public static boolean toBool(String b) {
            try {
                return Boolean.parseBoolean(b);
            } catch (Exception e) {
            }
            return false;
        }
    
        public static String getString(String s) {
            return s == null ? "" : s;
        }
    
        /**
         * 将一个InputStream流转换成字符串
         *
         * @param is
         * @return
         */
        public static String toConvertString(InputStream is) {
            StringBuffer res = new StringBuffer();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader read = new BufferedReader(isr);
            try {
                String line;
                line = read.readLine();
                while (line != null) {
                    res.append(line + "<br>");
                    line = read.readLine();
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != isr) {
                        isr.close();
                        isr.close();
                    }
                    if (null != read) {
                        read.close();
                        read = null;
                    }
                    if (null != is) {
                        is.close();
                        is = null;
                    }
                } catch (IOException e) {
                }
            }
            return res.toString();
        }
    
        /***
         * 截取字符串
         *
         * @param start 从那里开始,0算起
         * @param num   截取多少个
         * @param str   截取的字符串
         * @return
         */
        public static String getSubString(int start, int num, String str) {
            if (str == null) {
                return "";
            }
            int leng = str.length();
            if (start < 0) {
                start = 0;
            }
            if (start > leng) {
                start = leng;
            }
            if (num < 0) {
                num = 1;
            }
            int end = start + num;
            if (end > leng) {
                end = leng;
            }
            return str.substring(start, end);
        }
    
        /**
         * 获取当前时间为每年第几周
         *
         * @return
         */
        public static int getWeekOfYear() {
            return getWeekOfYear(new Date());
        }
    
        /**
         * 获取当前时间为每年第几周
         *
         * @param date
         * @return
         */
        public static int getWeekOfYear(Date date) {
            Calendar c = Calendar.getInstance();
            c.setFirstDayOfWeek(Calendar.MONDAY);
            c.setTime(date);
            int week = c.get(Calendar.WEEK_OF_YEAR) - 1;
            week = week == 0 ? 52 : week;
            return week > 0 ? week : 1;
        }
    
        public static int[] getCurrentDate() {
            int[] dateBundle = new int[3];
            String[] temp = getDataTime("yyyy-MM-dd").split("-");
    
            for (int i = 0; i < 3; i++) {
                try {
                    dateBundle[i] = Integer.parseInt(temp[i]);
                } catch (Exception e) {
                    dateBundle[i] = 0;
                }
            }
            return dateBundle;
        }
    
        /**
         * 返回当前系统时间
         */
        public static String getDataTime(String format) {
            SimpleDateFormat df = new SimpleDateFormat(format);
            return df.format(new Date());
        }
    
    }
    
    

    文件操作工具包

    
    import android.content.Context;
    import android.os.Environment;
    import android.os.StatFs;
    import android.util.Log;
    
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 文件操作工具包
     */
    public class FileUtil {
        /**
         * 写文本文件 在Android系统中,文件保存在 /data/data/PACKAGE_NAME/files 目录下
         *
         * @param context
         * @param msg
         */
        public static void write(Context context, String fileName, String content) {
            if (content == null)
                content = "";
    
            try {
                FileOutputStream fos = context.openFileOutput(fileName,
                        Context.MODE_PRIVATE);
                fos.write(content.getBytes());
    
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 读取文本文件
         *
         * @param context
         * @param fileName
         * @return
         */
        public static String read(Context context, String fileName) {
            try {
                FileInputStream in = context.openFileInput(fileName);
                return readInStream(in);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return "";
        }
    
        public static String readInStream(InputStream inStream) {
            try {
                ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                byte[] buffer = new byte[512];
                int length = -1;
                while ((length = inStream.read(buffer)) != -1) {
                    outStream.write(buffer, 0, length);
                }
    
                outStream.close();
                inStream.close();
                return outStream.toString();
            } catch (IOException e) {
                Log.i("FileTest", e.getMessage());
            }
            return null;
        }
    
        public static File createFile(String folderPath, String fileName) {
            File destDir = new File(folderPath);
            if (!destDir.exists()) {
                destDir.mkdirs();
            }
            return new File(folderPath, fileName + fileName);
        }
    
        /**
         * 向手机写图片
         *
         * @param buffer
         * @param folder
         * @param fileName
         * @return
         */
        public static boolean writeFile(byte[] buffer, String folder,
                                        String fileName) {
            boolean writeSucc = false;
    
            boolean sdCardExist = Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED);
    
            String folderPath = "";
            if (sdCardExist) {
                folderPath = Environment.getExternalStorageDirectory()
                        + File.separator + folder + File.separator;
            } else {
                writeSucc = false;
            }
    
            File fileDir = new File(folderPath);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
    
            File file = new File(folderPath + fileName);
            FileOutputStream out = null;
            try {
                out = new FileOutputStream(file);
                out.write(buffer);
                writeSucc = true;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            return writeSucc;
        }
    
        /**
         * 根据文件绝对路径获取文件名
         *
         * @param filePath
         * @return
         */
        public static String getFileName(String filePath) {
            if (StringUtils.isEmpty(filePath))
                return "";
            return filePath.substring(filePath.lastIndexOf(File.separator) + 1);
        }
    
        /**
         * 根据文件的绝对路径获取文件名但不包含扩展名
         *
         * @param filePath
         * @return
         */
        public static String getFileNameNoFormat(String filePath) {
            if (StringUtils.isEmpty(filePath)) {
                return "";
            }
            int point = filePath.lastIndexOf('.');
            return filePath.substring(filePath.lastIndexOf(File.separator) + 1,
                    point);
        }
    
        /**
         * 获取文件扩展名
         *
         * @param fileName
         * @return
         */
        public static String getFileFormat(String fileName) {
            if (StringUtils.isEmpty(fileName))
                return "";
    
            int point = fileName.lastIndexOf('.');
            return fileName.substring(point + 1);
        }
    
        /**
         * 获取文件大小
         *
         * @param filePath
         * @return
         */
        public static long getFileSize(String filePath) {
            long size = 0;
    
            File file = new File(filePath);
            if (file != null && file.exists()) {
                size = file.length();
            }
            return size;
        }
    
        /**
         * 获取文件大小
         *
         * @param size 字节
         * @return
         */
        public static String getFileSize(long size) {
            if (size <= 0)
                return "0";
            java.text.DecimalFormat df = new java.text.DecimalFormat("##.##");
            float temp = (float) size / 1024;
            if (temp >= 1024) {
                return df.format(temp / 1024) + "M";
            } else {
                return df.format(temp) + "K";
            }
        }
    
        /**
         * 转换文件大小
         *
         * @param fileS
         * @return B/KB/MB/GB
         */
        public static String formatFileSize(long fileS) {
            java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
            String fileSizeString = "";
            if (fileS < 1024) {
                fileSizeString = df.format((double) fileS) + "B";
            } else if (fileS < 1048576) {
                fileSizeString = df.format((double) fileS / 1024) + "KB";
            } else if (fileS < 1073741824) {
                fileSizeString = df.format((double) fileS / 1048576) + "MB";
            } else {
                fileSizeString = df.format((double) fileS / 1073741824) + "G";
            }
            return fileSizeString;
        }
    
        /**
         * 获取目录文件大小
         *
         * @param dir
         * @return
         */
        public static long getDirSize(File dir) {
            if (dir == null) {
                return 0;
            }
            if (!dir.isDirectory()) {
                return 0;
            }
            long dirSize = 0;
            File[] files = dir.listFiles();
            if (files != null) {
    
                for (File file : files) {
                    if (file.isFile()) {
                        dirSize += file.length();
                    } else if (file.isDirectory()) {
                        dirSize += file.length();
                        dirSize += getDirSize(file); // 递归调用继续统计
                    }
                }
            }
            return dirSize;
        }
    
        /**
         * 获取目录文件个数
         *
         * @param emojiFragment
         * @return
         */
        public long getFileList(File dir) {
            long count = 0;
            File[] files = dir.listFiles();
            count = files.length;
            for (File file : files) {
                if (file.isDirectory()) {
                    count = count + getFileList(file);// 递归
                    count--;
                }
            }
            return count;
        }
    
        public static byte[] toBytes(InputStream in) throws IOException {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            int ch;
            while ((ch = in.read()) != -1) {
                out.write(ch);
            }
            byte buffer[] = out.toByteArray();
            out.close();
            return buffer;
        }
    
        /**
         * 检查文件是否存在
         *
         * @param name
         * @return
         */
        public static boolean checkFileExists(String name) {
            boolean status;
            if (!name.equals("")) {
                File path = Environment.getExternalStorageDirectory();
                File newPath = new File(path.toString() + name);
                status = newPath.exists();
            } else {
                status = false;
            }
            return status;
        }
    
        /**
         * 检查路径是否存在
         *
         * @param path
         * @return
         */
        public static boolean checkFilePathExists(String path) {
            return new File(path).exists();
        }
    
        /**
         * 计算SD卡的剩余空间
         *
         * @return 返回-1,说明没有安装sd卡
         */
        public static long getFreeDiskSpace() {
            String status = Environment.getExternalStorageState();
            long freeSpace = 0;
            if (status.equals(Environment.MEDIA_MOUNTED)) {
                try {
                    File path = Environment.getExternalStorageDirectory();
                    StatFs stat = new StatFs(path.getPath());
                    long blockSize = stat.getBlockSize();
                    long availableBlocks = stat.getAvailableBlocks();
                    freeSpace = availableBlocks * blockSize / 1024;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                return -1;
            }
            return (freeSpace);
        }
    
        /**
         * 新建目录
         *
         * @param directoryName
         * @return
         */
        public static boolean createDirectory(String directoryName) {
            boolean status;
            if (!directoryName.equals("")) {
                File path = Environment.getExternalStorageDirectory();
                File newPath = new File(path.toString() + directoryName);
                status = newPath.mkdir();
                status = true;
            } else
                status = false;
            return status;
        }
    
        /**
         * 检查是否安装SD卡
         *
         * @return
         */
        public static boolean checkSaveLocationExists() {
            String sDCardStatus = Environment.getExternalStorageState();
            boolean status;
            if (sDCardStatus.equals(Environment.MEDIA_MOUNTED)) {
                status = true;
            } else
                status = false;
            return status;
        }
    
        /**
         * 检查是否安装外置的SD卡
         *
         * @return
         */
        public static boolean checkExternalSDExists() {
    
            Map<String, String> evn = System.getenv();
            return evn.containsKey("SECONDARY_STORAGE");
        }
    
        /**
         * 删除目录(包括:目录里的所有文件)
         *
         * @param fileName
         * @return
         */
        public static boolean deleteDirectory(String fileName) {
            boolean status;
            SecurityManager checker = new SecurityManager();
    
            if (!fileName.equals("")) {
    
                File path = Environment.getExternalStorageDirectory();
                File newPath = new File(path.toString() + fileName);
                checker.checkDelete(newPath.toString());
                if (newPath.isDirectory()) {
                    String[] listfile = newPath.list();
                    try {
                        for (int i = 0; i < listfile.length; i++) {
                            File deletedFile = new File(newPath.toString() + "/"
                                    + listfile[i].toString());
                            deletedFile.delete();
                        }
                        newPath.delete();
                        Log.i("DirectoryManager deleteDirectory", fileName);
                        status = true;
                    } catch (Exception e) {
                        e.printStackTrace();
                        status = false;
                    }
    
                } else
                    status = false;
            } else
                status = false;
            return status;
        }
    
        /**
         * 删除文件
         *
         * @param fileName
         * @return
         */
        public static boolean deleteFile(String fileName) {
            boolean status;
            SecurityManager checker = new SecurityManager();
    
            if (!fileName.equals("")) {
    
                File path = Environment.getExternalStorageDirectory();
                File newPath = new File(path.toString() + fileName);
                checker.checkDelete(newPath.toString());
                if (newPath.isFile()) {
                    try {
                        Log.i("DirectoryManager deleteFile", fileName);
                        newPath.delete();
                        status = true;
                    } catch (SecurityException se) {
                        se.printStackTrace();
                        status = false;
                    }
                } else
                    status = false;
            } else
                status = false;
            return status;
        }
    
        /**
         * 删除空目录
         * <p/>
         * 返回 0代表成功 ,1 代表没有删除权限, 2代表不是空目录,3 代表未知错误
         *
         * @return
         */
        public static int deleteBlankPath(String path) {
            File f = new File(path);
            if (!f.canWrite()) {
                return 1;
            }
            if (f.list() != null && f.list().length > 0) {
                return 2;
            }
            if (f.delete()) {
                return 0;
            }
            return 3;
        }
    
        /**
         * 重命名
         *
         * @param oldName
         * @param newName
         * @return
         */
        public static boolean reNamePath(String oldName, String newName) {
            File f = new File(oldName);
            return f.renameTo(new File(newName));
        }
    
        /**
         * 删除文件
         *
         * @param filePath
         */
        public static boolean deleteFileWithPath(String filePath) {
            SecurityManager checker = new SecurityManager();
            File f = new File(filePath);
            checker.checkDelete(filePath);
            if (f.isFile()) {
                Log.i("DirectoryManager deleteFile", filePath);
                f.delete();
                return true;
            }
            return false;
        }
    
        /**
         * 清空一个文件夹
         *
         * @param files
         */
        public static void clearFileWithPath(String filePath) {
            List<File> files = FileUtil.listPathFiles(filePath);
            if (files.isEmpty()) {
                return;
            }
            for (File f : files) {
                if (f.isDirectory()) {
                    clearFileWithPath(f.getAbsolutePath());
                } else {
                    f.delete();
                }
            }
        }
    
        /**
         * 获取SD卡的根目录
         *
         * @return
         */
        public static String getSDRoot() {
    
            return Environment.getExternalStorageDirectory().getAbsolutePath();
        }
    
        /**
         * 获取手机外置SD卡的根目录
         *
         * @return
         */
        public static String getExternalSDRoot() {
    
            Map<String, String> evn = System.getenv();
    
            return evn.get("SECONDARY_STORAGE");
        }
    
        /**
         * 列出root目录下所有子目录
         *
         * @param path
         * @return 绝对路径
         */
        public static List<String> listPath(String root) {
            List<String> allDir = new ArrayList<String>();
            SecurityManager checker = new SecurityManager();
            File path = new File(root);
            checker.checkRead(root);
            // 过滤掉以.开始的文件夹
            if (path.isDirectory()) {
                for (File f : path.listFiles()) {
                    if (f.isDirectory() && !f.getName().startsWith(".")) {
                        allDir.add(f.getAbsolutePath());
                    }
                }
            }
            return allDir;
        }
    
        /**
         * 获取一个文件夹下的所有文件
         *
         * @param root
         * @return
         */
        public static List<File> listPathFiles(String root) {
            List<File> allDir = new ArrayList<File>();
            SecurityManager checker = new SecurityManager();
            File path = new File(root);
            checker.checkRead(root);
            File[] files = path.listFiles();
            for (File f : files) {
                if (f.isFile())
                    allDir.add(f);
                else
                    listPath(f.getAbsolutePath());
            }
            return allDir;
        }
    
        public enum PathStatus {
            SUCCESS, EXITS, ERROR
        }
    
        /**
         * 创建目录
         *
         * @param path
         */
        public static PathStatus createPath(String newPath) {
            File path = new File(newPath);
            if (path.exists()) {
                return PathStatus.EXITS;
            }
            if (path.mkdir()) {
                return PathStatus.SUCCESS;
            } else {
                return PathStatus.ERROR;
            }
        }
    
        /**
         * 截取路径名
         *
         * @return
         */
        public static String getPathName(String absolutePath) {
            int start = absolutePath.lastIndexOf(File.separator) + 1;
            int end = absolutePath.length();
            return absolutePath.substring(start, end);
        }
    
        /**
         * 获取应用程序缓存文件夹下的指定目录
         *
         * @param context
         * @param dir
         * @return
         */
        public static String getAppCache(Context context, String dir) {
            String savePath = context.getCacheDir().getAbsolutePath() + "/" + dir + "/";
            File savedir = new File(savePath);
            if (!savedir.exists()) {
                savedir.mkdirs();
            }
            savedir = null;
            return savePath;
        }
    }
    
    

    加密解密工具包

    
    
    import java.security.InvalidAlgorithmParameterException;
    import java.security.Key;
    import java.security.spec.AlgorithmParameterSpec;
    
    import javax.crypto.Cipher;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.DESKeySpec;
    import javax.crypto.spec.IvParameterSpec;
    
    /**
     * 加密解密工具包
     */
    public class CyptoUtils {
    
        public static final String ALGORITHM_DES = "DES/CBC/PKCS5Padding";
        
        /**
         * DES算法,加密
         *
         * @param data 待加密字符串
         * @param key  加密私钥,长度不能够小于8位
         * @return 加密后的字节数组,一般结合Base64编码使用
         * @throws InvalidAlgorithmParameterException 
         * @throws Exception 
         */
        public static String encode(String key,String data) {
            if(data == null)
                return null;
            try{
                DESKeySpec dks = new DESKeySpec(key.getBytes());            
                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                //key的长度不能够小于8位字节
                Key secretKey = keyFactory.generateSecret(dks);
                Cipher cipher = Cipher.getInstance(ALGORITHM_DES);
                IvParameterSpec iv = new IvParameterSpec("12345678".getBytes());
                AlgorithmParameterSpec paramSpec = iv;
                cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec);           
                byte[] bytes = cipher.doFinal(data.getBytes());            
                return byte2hex(bytes);
            }catch(Exception e){
                e.printStackTrace();
                return data;
            }
        }
    
        /**
         * DES算法,解密
         *
         * @param data 待解密字符串
         * @param key  解密私钥,长度不能够小于8位
         * @return 解密后的字节数组
         * @throws Exception 异常
         */
        public static String decode(String key,String data) {
            if(data == null)
                return null;
            try {
                DESKeySpec dks = new DESKeySpec(key.getBytes());
                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                //key的长度不能够小于8位字节
                Key secretKey = keyFactory.generateSecret(dks);
                Cipher cipher = Cipher.getInstance(ALGORITHM_DES);
                IvParameterSpec iv = new IvParameterSpec("12345678".getBytes());
                AlgorithmParameterSpec paramSpec = iv;
                cipher.init(Cipher.DECRYPT_MODE, secretKey, paramSpec);
                return new String(cipher.doFinal(hex2byte(data.getBytes())));
            } catch (Exception e){
                e.printStackTrace();
                return data;
            }
        }
    
        /**
         * 二行制转字符串
         * @param b
         * @return
         */
        private static String byte2hex(byte[] b) {
            StringBuilder hs = new StringBuilder();
            String stmp;
            for (int n = 0; b!=null && n < b.length; n++) {
                stmp = Integer.toHexString(b[n] & 0XFF);
                if (stmp.length() == 1)
                    hs.append('0');
                hs.append(stmp);
            }
            return hs.toString().toUpperCase();
        }
        
        private static byte[] hex2byte(byte[] b) {
            if((b.length%2)!=0)
                throw new IllegalArgumentException();
            byte[] b2 = new byte[b.length/2];
            for (int n = 0; n < b.length; n+=2) {
                String item = new String(b,n,2);
                b2[n/2] = (byte)Integer.parseInt(item,16);
            }
            return b2;
        }
        
    }
    
    

    跟App相关的辅助类

    import android.content.Context;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.content.pm.PackageManager.NameNotFoundException;
    
    /**
     * @Desc:跟App相关的辅助类
     */
    public class AppUtils
    {
    
        private AppUtils()
        {
            /* cannot be instantiated */
            throw new UnsupportedOperationException("cannot be instantiated");
    
        }
    
        /**
         * 获取应用程序名称
         */
        public static String getAppName(Context context)
        {
            try
            {
                PackageManager packageManager = context.getPackageManager();
                PackageInfo packageInfo = packageManager.getPackageInfo(
                        context.getPackageName(), 0);
                int labelRes = packageInfo.applicationInfo.labelRes;
                return context.getResources().getString(labelRes);
            } catch (NameNotFoundException e)
            {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * [获取应用程序版本名称信息]
         * 
         * @param context
         * @return 当前应用的版本名称
         */
        public static String getVersionName(Context context)
        {
            try
            {
                PackageManager packageManager = context.getPackageManager();
                PackageInfo packageInfo = packageManager.getPackageInfo(
                        context.getPackageName(), 0);
                return packageInfo.versionName;
    
            } catch (NameNotFoundException e)
            {
                e.printStackTrace();
            }
            return null;
        }
    
    }
    

    像素的工具类

    import android.content.Context;
    import android.util.TypedValue;
    
    /**
     * @Desc:像素的工具类
     */
    
    public class DensityUtils
    {  
        private DensityUtils()  
        {  
            /* cannot be instantiated */  
            throw new UnsupportedOperationException("cannot be instantiated");  
        }  
      
        /** 
         * dp转px 
         *  
         * @param context 
         * @return
         */  
        public static int dp2px(Context context, float dpVal)
        {  
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                    dpVal, context.getResources().getDisplayMetrics());  
        }  
      
        /** 
         * sp转px 
         *  
         * @param context 
         * @return
         */  
        public static int sp2px(Context context, float spVal)  
        {  
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,  
                    spVal, context.getResources().getDisplayMetrics());  
        }  
      
        /** 
         * px转dp 
         *  
         * @param context 
         * @param pxVal 
         * @return 
         */  
        public static float px2dp(Context context, float pxVal)  
        {  
            final float scale = context.getResources().getDisplayMetrics().density;  
            return (pxVal / scale);  
        }  
      
        /** 
         * px转sp 
         *  
         * @param pxVal
         * @return 
         */  
        public static float px2sp(Context context, float pxVal)  
        {  
            return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);  
        }  
      
    } 
    

    软键盘工具类

    import android.content.Context;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.EditText;
    
    /**
     * @Desc:软键盘工具类
     */
    public class KeyBoardUtils
    {
        /**
         * 打卡软键盘
         * 
         * @param mEditText
         *            输入框
         * @param mContext
         *            上下文
         */
        public static void openKeybord(EditText mEditText, Context mContext)
        {
            InputMethodManager imm = (InputMethodManager) mContext
                    .getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
                    InputMethodManager.HIDE_IMPLICIT_ONLY);
        }
    
        /**
         * 关闭软键盘
         * 
         * @param mEditText
         *            输入框
         * @param mContext
         *            上下文
         */
        public static void closeKeybord(EditText mEditText, Context mContext)
        {
            InputMethodManager imm = (InputMethodManager) mContext
                    .getSystemService(Context.INPUT_METHOD_SERVICE);
    
            imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
        }
    }
    
    

    跟网络相关的工具类

    import android.app.Activity;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    /**
     * @Desc:跟网络相关的工具类
     */
    
    public class NetUtils
    {
        private NetUtils()
        {
            /* cannot be instantiated */
            throw new UnsupportedOperationException("cannot be instantiated");
        }
    
        /**
         * 判断网络是否连接
         * 
         * @param context
         * @return
         */
        public static boolean isConnected(Context context)
        {
    
            ConnectivityManager connectivity = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
    
            if (null != connectivity)
            {
    
                NetworkInfo info = connectivity.getActiveNetworkInfo();
                if (null != info && info.isConnected())
                {
                    if (info.getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    
        /**
         * 判断是否是wifi连接
         */
        public static boolean isWifi(Context context)
        {
            ConnectivityManager cm = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
    
            if (cm == null)
                return false;
            return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
    
        }
    
        /**
         * 打开网络设置界面
         */
        public static void openSetting(Activity activity)
        {
            Intent intent = new Intent("/");
            ComponentName cm = new ComponentName("com.android.settings",
                    "com.android.settings.WirelessSettings");
            intent.setComponent(cm);
            intent.setAction("android.intent.action.VIEW");
            activity.startActivityForResult(intent, 0);
        }
    
    }
    

    获得屏幕相关的辅助类

    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Rect;
    import android.util.DisplayMetrics;
    import android.view.View;
    import android.view.WindowManager;
    
    /**
     * @Desc:获得屏幕相关的辅助类
     */
    public class ScreenUtils
    {
        private ScreenUtils()
        {
            /* cannot be instantiated */
            throw new UnsupportedOperationException("cannot be instantiated");
        }
    
        /**
         * 获得屏幕高度
         * 
         * @param context
         * @return
         */
        public static int getScreenWidth(Context context)
        {
            WindowManager wm = (WindowManager) context
                    .getSystemService(Context.WINDOW_SERVICE);
            DisplayMetrics outMetrics = new DisplayMetrics();
            wm.getDefaultDisplay().getMetrics(outMetrics);
            return outMetrics.widthPixels;
        }
    
        /**
         * 获得屏幕宽度
         * 
         * @param context
         * @return
         */
        public static int getScreenHeight(Context context)
        {
            WindowManager wm = (WindowManager) context
                    .getSystemService(Context.WINDOW_SERVICE);
            DisplayMetrics outMetrics = new DisplayMetrics();
            wm.getDefaultDisplay().getMetrics(outMetrics);
            return outMetrics.heightPixels;
        }
    
        /**
         * 获得状态栏的高度
         * 
         * @param context
         * @return
         */
        public static int getStatusHeight(Context context)
        {
    
            int statusHeight = -1;
            try
            {
                Class<?> clazz = Class.forName("com.android.internal.R$dimen");
                Object object = clazz.newInstance();
                int height = Integer.parseInt(clazz.getField("status_bar_height")
                        .get(object).toString());
                statusHeight = context.getResources().getDimensionPixelSize(height);
            } catch (Exception e)
            {
                e.printStackTrace();
            }
            return statusHeight;
        }
    
        /**
         * 获取当前屏幕截图,包含状态栏
         * 
         * @param activity
         * @return
         */
        public static Bitmap snapShotWithStatusBar(Activity activity)
        {
            View view = activity.getWindow().getDecorView();
            view.setDrawingCacheEnabled(true);
            view.buildDrawingCache();
            Bitmap bmp = view.getDrawingCache();
            int width = getScreenWidth(activity);
            int height = getScreenHeight(activity);
            Bitmap bp = null;
            bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
            view.destroyDrawingCache();
            return bp;
    
        }
    
        /**
         * 获取当前屏幕截图,不包含状态栏
         * 
         * @param activity
         * @return
         */
        public static Bitmap snapShotWithoutStatusBar(Activity activity)
        {
            View view = activity.getWindow().getDecorView();
            view.setDrawingCacheEnabled(true);
            view.buildDrawingCache();
            Bitmap bmp = view.getDrawingCache();
            Rect frame = new Rect();
            activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
            int statusBarHeight = frame.top;
    
            int width = getScreenWidth(activity);
            int height = getScreenHeight(activity);
            Bitmap bp = null;
            bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height
                    - statusBarHeight);
            view.destroyDrawingCache();
            return bp;
    
        }
    
    }
    

    SD卡相关的辅助类

    import android.os.Environment;
    import android.os.StatFs;
    
    import java.io.File;
    
    /**
     * @Desc:SD卡相关的辅助类
     */
    
    public class SDCardUtils
    {
        private SDCardUtils()
        {
            /* cannot be instantiated */
            throw new UnsupportedOperationException("cannot be instantiated");
        }
    
        /**
         * 判断SDCard是否可用
         * 
         * @return
         */
        public static boolean isSDCardEnable()
        {
            return Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED);
    
        }
    
        /**
         * 获取SD卡路径
         * 
         * @return
         */
        public static String getSDCardPath()
        {
            return Environment.getExternalStorageDirectory().getAbsolutePath()
                    + File.separator;
        }
    
        /**
         * 获取SD卡的剩余容量 单位byte
         * 
         * @return
         */
        public static long getSDCardAllSize()
        {
            if (isSDCardEnable())
            {
                StatFs stat = new StatFs(getSDCardPath());
                // 获取空闲的数据块的数量
                long availableBlocks = (long) stat.getAvailableBlocks() - 4;
                // 获取单个数据块的大小(byte)
                long freeBlocks = stat.getAvailableBlocks();
                return freeBlocks * availableBlocks;
            }
            return 0;
        }
    
        /**
         * 获取指定路径所在空间的剩余可用容量字节数,单位byte
         * 
         * @param filePath
         * @return 容量字节 SDCard可用空间,内部存储可用空间
         */
        public static long getFreeBytes(String filePath)
        {
            // 如果是sd卡的下的路径,则获取sd卡可用容量
            if (filePath.startsWith(getSDCardPath()))
            {
                filePath = getSDCardPath();
            } else
            {// 如果是内部存储的路径,则获取内存存储的可用容量
                filePath = Environment.getDataDirectory().getAbsolutePath();
            }
            StatFs stat = new StatFs(filePath);
            long availableBlocks = (long) stat.getAvailableBlocks() - 4;
            return stat.getBlockSize() * availableBlocks;
        }
    
        /**
         * 获取系统存储路径
         * 
         * @return
         */
        public static String getRootDirectoryPath()
        {
            return Environment.getRootDirectory().getAbsolutePath();
        }
    
    
    }
    

    最后,因为时间原因,没有细看工具类内容,如果工具类有广告嫌疑,望通知,我会立即删除。

    相关文章

      网友评论

          本文标题:android 工具类

          本文链接:https://www.haomeiwen.com/subject/omexnttx.html