精华内容
下载资源
问答
  • Android常用开发工具类

    千次阅读 2016-07-23 17:21:10
    Android常用开发工具类应用工具类

    Android常用开发工具类

    Android开发中常用的的工具类集合,体积小60多KB,可以moudle依赖也可以手动打包arr导入,适合快速开发!具体内容可查看详情,和代码链接查看!

    应用工具类

    AbAppUtil代码链接

    • 读取application 节点 meta-data 信息readMetaDataFromApplication
    • 打开并安装文件 installApk
    • 卸载程序 uninstallApk
    • 用来判断服务是否运行 isServiceRunning
    • 停止服务 stopRunningService
    • 判断网络是否有效 isNetworkAvailable
    • Gps是否打开 isGpsEnabled
    • 判断当前网络是否是移动数据网络 isMobile
    • 导入数据库 importDatabase
    • 获取屏幕尺寸与密度 getDisplayMetrics
    • 打开键盘 showSoftInput
    • 关闭键盘事件 closeSoftInput
    • 获取包信息 getPackageInfo
    • 获取当前版本号 getVersionName
    • 获取开发版本号 getVersionCode
    • 是否存在该包名的应用 exitAppBy

    日期处理类

    AbDateUtil代码链接
    * String类型的日期时间转化为Date类型 getDateByFormat
    * 获取偏移之后的Date getDateByOffset
    * 获取指定日期时间的字符串(可偏移) getStringByOffset
    * Date类型转化为String类型(可偏移) getStringByOffset
    * Date类型转化为String类型 getStringByFormat
    * 获取指定日期时间的字符串,用于导出想要的格式 getStringByFormat
    * 获取milliseconds表示的日期时间的字符串 getStringByFormat
    * 获取表示当前日期时间的字符串 getCurrentDate
    * 获取表示当前日期时间的字符串(可偏移) getCurrentDateByOffset
    * 计算两个日期所差的天数 getOffectDay
    * 计算两个日期所差的小时数 getOffectHour
    * 计算两个日期所差的分钟数 getOffectMinutes
    * 获取本周一 getFirstDayOfWeek
    * 获取本周日 getLastDayOfWeek
    * 获取本周的某一天 getDayOfWeek
    * 获取本月第一天 getFirstDayOfMonth
    * 获取本月最后一天 getLastDayOfMonth
    * 获取表示当前日期的0点时间毫秒数 getFirstTimeOfDay
    * 获取表示当前日期24点时间毫秒数 getLastTimeOfDay
    * 判断是否是闰年 isLeapYear
    * 根据时间返回格式化后的时间的描述. 小于1小时显示多少分钟前 大于1小时显示今天+实际日期,大于今天全部显示实际时间formatDateStr2Desc
    * 取指定日期为星期几 getWeekNumber
    * 根据给定的日期判断是否为上下午 getTimeQuantum
    * 根据给定的毫秒数算得时间的描述 getTimeDescription
    * 解析时间按照小时:分:秒格式输出 getTime

    文件操作类

    AbFileUtil代码链接
    * 通过文件的网络地址从SD卡中读取图片,如果SD中没有则自动下载并保存 getBitmapFromSD
    * 通过文件的本地地址从SD卡读取图片 getBitmapFromSD
    * 通过文件的本地地址从SD卡读取图片 getBitmapFromSD
    * 将图片的byte[]写入本地文件 getBitmapFromByte
    * 根据URL从互连网获取图片 getBitmapFromURL
    * 获取src中的图片资源 getBitmapFromSrc
    * 获取Asset中的图片资源 getBitmapFromAsset getDrawableFromAsset
    * 下载网络文件到SD卡中.如果SD中存在同名文件将不再下载 downloadFile
    * 获取网络文件的大小 getContentLengthFromUrl
    * 获取文件名,通过网络获取 getRealFileNameFromUrl
    * 获取真实文件名(xx.后缀),通过网络获取 getRealFileName
    * 获取文件名(不含后缀) getCacheFileNameFromUrl
    * 获取文件名(.后缀),外链模式和通过网络获取 getCacheFileNameFromUrl
    * 获取文件后缀,本地 getMIMEFromUrl
    * 从sd卡中的文件读取到byte getByteArrayFromSD
    * 将byte数组写入文件 writeByteArrayToSD
    * SD卡是否能用 isCanUseSD
    * 计算sdcard上的剩余空间 freeSpaceOnSD
    * 根据文件的最后修改时间进行排序 FileLastModifSort
    * 删除所有缓存文件 clearDownloadFile
    * 读取Assets目录的文件内容 readAssetsByName
    * 读取Raw目录的文件内容 readRawByName
    * 解压缩功能. 将zipFile文件解压到folderPath目录下 upZipFile
    * 给定根目录,返回一个相对路径所对应的实际文件名.(压缩文件) getRealFileName
    * 打开pdf文件 openPdfFile
    * 删除文件,可以是单个文件或文件夹 delete
    * 删除单个文件 deleteFile
    * 删除目录(文件夹)以及目录下的文件 deleteDirectory
    * 获取下载根目录 getDownloadRootDir
    * 获取图片下载根目录 getImageDownloadDir
    * 获取文件下载根目录getFileDownloadDir
    * 本地缓存的目录 getCacheDownloadDir
    * 本地数据库目录 getDbDownloadDir
    * 缓存中可用的大小 getFreeSdSpaceNeededToCache

    图形处理类

    AbGraphicUtil代码链接
    * 获取字符的所在位置(按像素获取最大能容纳的)subStringLength
    * 获取文字的像素宽 getStringWidth
    * 获得文字的宽度 getDesiredWidth
    * 获取文字的高度 getDesiredHeight
    * 字符解析成行 getDrawRowStr
    * 获取这段文本多少行 getDrawRowCount
    * 绘制文本,支持换行 drawText

    图片处理类

    AbImageUtil代码链接
    * 解析bitmap getBitmapByte
    * 直接获取互联网上的图片 getBitmap
    * 获取原图 getBitmap
    * 缩放图片.压缩 scaleImg
    * 缩放图片,不压缩的缩放
    * 裁剪图片 cutImg
    * Drawable转Bitmap drawableToBitmap
    * Bitmap对象转换Drawable对象. bitmapToDrawable
    * Bitmap对象转换TransitionDrawable对象 bitmapToTransitionDrawable
    * Drawable对象转换TransitionDrawable对象 drawableToTransitionDrawable
    * 将Bitmap转换为byte[] bitmap2Bytes
    * 获取Bitmap大小 getByteCount
    * 将byte[]转换为Bitmap bytes2Bimap
    * 将View转换为Drawable.需要最上层布局为Linearlayout view2Drawable
    * 将View转换为Bitmap.需要最上层布局为Linearlayout view2Bitmap
    * 将View转换为byte[] view2Bytes
    * 旋转Bitmap为一定的角度 rotateBitmap
    * 旋转Bitmap为一定的角度并四周暗化处理 rotateBitmapTranslate
    * 转换图片转换成圆形 toRoundBitmap
    * 转换图片转换成圆形通过指定的弧度 toRoundBitmap
    * 转换图片转换成镜面效果的图片 toReflectionBitmap
    * 释放Bitmap对象 releaseBitmap
    * 释放Bitmap数组 releaseBitmapArray
    * 简单的图像的特征值,用于缩略图找原图比较好 getHashCode
    * 图像的特征值颜色分布 将颜色分4个区,0,1,2,3 区组合共64组,计算每个像素点属于哪个区 getColorHistogram
    * 计算”汉明距离”(Hamming distance)hammingDistance
    * 灰度值计算 rgbToGray
    * 压缩图片 compressBitmap
    * 根据URI获取图片物理路径 getAbsoluteImagePath

    日志工具类

    AbLogUtil代码链接

    数学处理类

    AbMathUtil代码链接
    * 四舍五入 round
    * 字节数组转换成16进制串 byte2HexStr
    * 二进制转为十六进制 binaryToHex
    * 一维数组转为二维数组 arrayToMatrix
    * 二维数组转为一维数组 matrixToArray
    * int数组转换为double数组 intToDoubleArray
    * int二维数组转换为double二维数组. intToDoubleMatrix
    * 计算数组的平均值 average
    * 点在直线上 pointAtSLine
    * 点在线段上 pointAtELine
    * 两条直线相交 LineAtLine
    * 线段与线段相交 eLineAtELine
    * 点在矩形内 pointAtRect
    * 矩形在矩形内 rectAtRect
    * 圆心在矩形内 circleAtRect
    * 获取两点间的距离 getDistance
    * 矩形碰撞检测 参数为x,y,width,height isRectCollision

    MD5加密

    AbMd5代码链接
    * MD5加密 MD5

    保存到 SharedPreferences 的数据

    AbSharedUtil代码链接

    字符串处理类

    AbStrUtil代码链接
    * 给填写搜索单词的关键词显示 特殊颜色 changeTextColor
    * 将null转化为“” parseEmpty
    * 判断一个字符串是否为null或空值 isEmpty
    * 集合是否为空 isEmpty
    * 获取字符串中文字符的长度(每个中文算2个字符) chineseLength
    * 获取字符串的长度 strLength
    * 获取指定长度的字符所在位置 subStringLength
    * 手机号格式验证 isMobileNo
    * 是否只是字母和数字 isNumberLetter
    * 是否只是数字 isNumber
    * 是否是邮箱 isEmail
    * 是否是中文 isChinese
    * 是否包含中文 isContainChinese
    * 是否包含中文数字字母的用户名 isConintChinseUser
    * 从输入流中获得String convertStreamToString
    * 标准化日期时间类型的数据,不足两位的补0 dateTimeFormat
    * 不足2个字符的在前面补“0” strFormat2
    * 截取字符串到指定字节长度 cutString
    * 截取字符串从第一个指定字符 cutStringFromChar
    * 获取字节长度 strlen
    * 获取大小的描述 getSizeDesc
    * ip地址转换为10进制数 ip2int

    View工具类

    AbViewUtil代码链接
    * 测量这个view measureView
    * 获得这个View的宽度 getViewWidth
    * 获得这个View的高度 getViewHeight
    * 从父亲布局中移除自己 removeSelfFromParent
    * dip转换为px dip2px
    * px转换为dip px2dip
    * sp转换为px sp2px
    * px转换为sp px2sp
    * 根据屏幕大小缩放 scale
    * 根据屏幕大小缩放 scale
    * TypedValue官方源码中的算法,任意单位转换为PX单位 applyDimension
    * View树递归调用做适配 scaleContentView
    * 按比例缩放View,以布局中的尺寸为基准 scaleView
    * 缩放文字大小 setSPTextSize
    * 缩放文字大小,这样设置的好处是文字的大小不和密度有关 setTextSize
    * 缩放文字大小 setTextSize
    * 设置View的PX尺寸 setViewSize
    * 设置PX padding. setPadding
    * 设置 PX margin setMargin

    戳我下载源码!!!!!!!!!!!!!!!!!!!

    展开全文
  • Android 常用开发工具类

    千次阅读 2015-12-14 17:10:55
    在开发中使用一些工具类,能让代码更加简洁,开发效率也更高,下面是我收集的Android中常用的一些开发工具类,如果大家有更好的工具,欢迎私信我。 数据管理的工具类,清理缓存数据 import java.io.File; import ...

    在开发中使用一些工具类,能让代码更加简洁,开发效率也更高,下面是我收集的Android中常用的一些开发工具类,如果大家有更好的工具,欢迎私信我。

    数据管理的工具类,清理缓存数据

    
    import java.io.File;
    import java.math.BigDecimal;
    
    import android.content.Context;
    import android.os.Environment;
    import android.text.TextUtils;
    
    /**
     * 本应用数据清除管理器
     * 
     * 
     */
    public class DataCleanManager {
    	/**
    	 * * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * *
    	 * 
    	 * @param context
    	 */
    	public static void cleanInternalCache(Context context) {
    		deleteFilesByDirectory(context.getCacheDir());
    	}
    
    	/**
    	 * * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * *
    	 * 
    	 * @param context
    	 */
    	public static void cleanDatabases(Context context) {
    		deleteFilesByDirectory(new File("/data/data/"
    				+ context.getPackageName() + "/databases"));
    	}
    
    	/**
    	 * * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) *
    	 * 
    	 * @param context
    	 */
    	public static void cleanSharedPreference(Context context) {
    		deleteFilesByDirectory(new File("/data/data/"
    				+ context.getPackageName() + "/shared_prefs"));
    	}
    
    	/**
    	 * * 按名字清除本应用数据库 * *
    	 * 
    	 * @param context
    	 * @param dbName
    	 */
    	public static void cleanDatabaseByName(Context context, String dbName) {
    		context.deleteDatabase(dbName);
    	}
    
    	/**
    	 * * 清除/data/data/com.xxx.xxx/files下的内容 * *
    	 * 
    	 * @param context
    	 */
    	public static void cleanFiles(Context context) {
    		deleteFilesByDirectory(context.getFilesDir());
    	}
    
    	/**
    	 * * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache)
    	 * 
    	 * @param context
    	 */
    	public static void cleanExternalCache(Context context) {
    		if (Environment.getExternalStorageState().equals(
    				Environment.MEDIA_MOUNTED)) {
    			deleteFilesByDirectory(context.getExternalCacheDir());
    		}
    	}
    
    	/**
    	 * * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * *
    	 * 
    	 * @param filePath
    	 * */
    	public static void cleanCustomCache(String filePath) {
    		deleteFilesByDirectory(new File(filePath));
    	}
    
    	/**
    	 * * 清除本应用所有的数据 * *
    	 * 
    	 * @param context
    	 * @param filepath
    	 */
    	public static void cleanApplicationData(Context context, String... filepath) {
    		cleanInternalCache(context);
    		cleanExternalCache(context);
    		cleanDatabases(context);
    		cleanSharedPreference(context);
    		cleanFiles(context);
    		if (filepath == null) {
    			return;
    		}
    		for (String filePath : filepath) {
    			cleanCustomCache(filePath);
    		}
    	}
    
    	/**
    	 * * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * *
    	 * 
    	 * @param directory
    	 */
    	private static void deleteFilesByDirectory(File directory) {
    		if (directory.isFile()) {
    			directory.delete();
    		} else if (directory != null && directory.exists()
    				&& directory.isDirectory()) {
    			for (File item : directory.listFiles()) {
    				deleteFilesByDirectory(item);
    			}
    		}
    	}
    
    	// 获取文件
    	// Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/
    	// 目录,一般放一些长时间保存的数据
    	// Context.getExternalCacheDir() -->
    	// SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
    	public static long getFolderSize(File file) throws Exception {
    		long size = 0;
    		try {
    			File[] fileList = file.listFiles();
    			for (int i = 0; i < fileList.length; i++) {
    				// 如果下面还有文件
    				if (fileList[i].isDirectory()) {
    					size = size + getFolderSize(fileList[i]);
    				} else {
    					size = size + fileList[i].length();
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return size;
    	}
    
    	/**
    	 * 删除指定目录下文件及目录
    	 * 
    	 * @param deleteThisPath
    	 * @param filepath
    	 * @return
    	 */
    	public static void deleteFolderFile(String filePath, boolean deleteThisPath) {
    		if (!TextUtils.isEmpty(filePath)) {
    			try {
    				File file = new File(filePath);
    				if (file.isDirectory()) {// 如果下面还有文件
    					File files[] = file.listFiles();
    					for (int i = 0; i < files.length; i++) {
    						deleteFolderFile(files[i].getAbsolutePath(), true);
    					}
    				}
    				if (deleteThisPath) {
    					if (!file.isDirectory()) {// 如果是文件,删除
    						file.delete();
    					} else {// 目录
    						if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除
    							file.delete();
    						}
    					}
    				}
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	/**
    	 * 格式化单位
    	 * 
    	 * @param size
    	 * @return
    	 */
    	public static String getFormatSize(double size) {
    		double kiloByte = size / 1024;
    		if (kiloByte < 1) {
    			return size + "Byte";
    		}
    
    		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";
    	}
    
    	public static String getCacheSize(File file) throws Exception {
    		return getFormatSize(getFolderSize(file));
    	}
    
    }
    手机号,邮箱,身份证校验工具类

    
    import java.util.HashMap;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class VerificationUtils {
    
    	private final static Pattern emailer = Pattern
    			.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    	private static String _codeError;
    	// wi =2(n-1)(mod 11)
    	final static int[] wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4,
    			2, 1 };
    	// verify digit
    	final static int[] vi = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 };
    	private static int[] ai = new int[18];
    	private static String[] _areaCode = { "11", "12", "13", "14", "15", "21",
    			"22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42",
    			"43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62",
    			"63", "64", "65", "71", "81", "82", "91" };
    	private static HashMap<String, Integer> dateMap;
    	private static HashMap<String, String> areaCodeMap;
    	static {
    		dateMap = new HashMap<String, Integer>();
    		dateMap.put("01", 31);
    		dateMap.put("02", null);
    		dateMap.put("03", 31);
    		dateMap.put("04", 30);
    		dateMap.put("05", 31);
    		dateMap.put("06", 30);
    		dateMap.put("07", 31);
    		dateMap.put("08", 31);
    		dateMap.put("09", 30);
    		dateMap.put("10", 31);
    		dateMap.put("11", 30);
    		dateMap.put("12", 31);
    		areaCodeMap = new HashMap<String, String>();
    		for (String code : _areaCode) {
    			areaCodeMap.put(code, null);
    		}
    	}
    
    	/**
    	 * 验证手机号
    	 * 
    	 * @param str
    	 * @return
    	 */
    	public static boolean isMobile(String str) {
    		Pattern p = null;
    		Matcher m = null;
    		boolean b = false;
    		p = Pattern.compile("^[1][3,4,5,8,7][0-9]{9}$");
    		// p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
    		m = p.matcher(str);
    		b = m.matches();
    		return b;
    	}
    
    	/**
    	 * 验证邮箱
    	 * 
    	 * @param email
    	 * @return
    	 */
    	public static boolean isEmail(String email) {
    		if (email == null || email.trim().length() == 0)
    			return false;
    		return emailer.matcher(email).matches();
    	}
    
    	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 code
    	 * @return
    	 */
    	public static boolean verifyLength(String code) {
    		int length = code.length();
    		if (length == 15 || length == 18) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    	
    	/**
    	 * 验证省区
    	 * @param code
    	 * @return
    	 */
    	public static boolean verifyAreaCode(String code) {
    		String areaCode = code.substring(0, 2);
    		if (areaCodeMap.containsKey(areaCode)) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    	
    	/**
    	 * 验证生日
    	 * @param code
    	 * @return
    	 */
    	public static boolean verifyBirthdayCode(String code) {
    		String month = code.substring(10, 12);
    		boolean isEighteenCode = (18 == code.length());
    		if (!dateMap.containsKey(month)) {
    			return false;
    		}
    		String dayCode = code.substring(12, 14);
    		Integer day = dateMap.get(month);
    		String yearCode = code.substring(6, 10);
    		Integer year = Integer.valueOf(yearCode);
    
    		if (day != null) {
    			if (Integer.valueOf(dayCode) > day || Integer.valueOf(dayCode) < 1) {
    				return false;
    			}
    		} else {
    			if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
    				if (Integer.valueOf(dayCode) > 29
    						|| Integer.valueOf(dayCode) < 1) {
    					return false;
    				}
    			} else {
    				if (Integer.valueOf(dayCode) > 28
    						|| Integer.valueOf(dayCode) < 1) {
    					return false;
    				}
    			}
    		}
    		return true;
    	}
    
    	public static boolean containsAllNumber(String code) {
    		String str = "";
    		if (code.length() == 15) {
    			str = code.substring(0, 15);
    		} else if (code.length() == 18) {
    			str = code.substring(0, 17);
    		}
    		char[] ch = str.toCharArray();
    		for (int i = 0; i < ch.length; i++) {
    			if (!(ch[i] >= '0' && ch[i] <= '9')) {
    				return false;
    			}
    		}
    		return true;
    	}
    
    	 
    
    	public static boolean verify(String idcard) {
    		if (!verifyLength(idcard)) {
    			return false;
    		}
    		if (!containsAllNumber(idcard)) {
    			return false;
    		}
    
    		String eifhteencard = "";
    		if (idcard.length() == 15) {
    			eifhteencard = uptoeighteen(idcard);
    		} else {
    			eifhteencard = idcard;
    		}
    		if (!verifyAreaCode(eifhteencard)) {
    			return false;
    		}
    		if (!verifyBirthdayCode(eifhteencard)) {
    			return false;
    		}
    		if (!verifyMOD(eifhteencard)) {
    			return false;
    		}
    		return true;
    	}
    
    	public static boolean verifyMOD(String code) {
    		String verify = code.substring(17, 18);
    		if ("x".equals(verify)) {
    			code = code.replaceAll("x", "X");
    			verify = "X";
    		}
    		String verifyIndex = getVerify(code);
    		if (verify.equals(verifyIndex)) {
    			return true;
    		}
    		// int x=17;
    		// if(code.length()==15){
    		// x=14;
    		// }
    		return false;
    	}
    
    	public static String getVerify(String eightcardid) {
    		int remaining = 0;
    
    		if (eightcardid.length() == 18) {
    			eightcardid = eightcardid.substring(0, 17);
    		}
    
    		if (eightcardid.length() == 17) {
    			int sum = 0;
    			for (int i = 0; i < 17; i++) {
    				String k = eightcardid.substring(i, i + 1);
    				ai[i] = Integer.parseInt(k);
    			}
    
    			for (int i = 0; i < 17; i++) {
    				sum = sum + wi[i] * ai[i];
    			}
    			remaining = sum % 11;
    		}
    
    		return remaining == 2 ? "X" : String.valueOf(vi[remaining]);
    	}
    
    	public static String uptoeighteen(String fifteencardid) {
    		String eightcardid = fifteencardid.substring(0, 6);
    		eightcardid = eightcardid + "19";
    		eightcardid = eightcardid + fifteencardid.substring(6, 15);
    		eightcardid = eightcardid + getVerify(eightcardid);
    		return eightcardid;
    	}
    }
    

    sharedPreferences封装工具类

    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    
    public class SharedPreferencesUtil {
    	/**
    	 * 保存在手机里面的文件名
    	 */
    	private static final String SP_NAME = "sp_name";
    
    	public static void setStringParam(Context context, String key, String value) {
    		SharedPreferences sp = context.getSharedPreferences(SP_NAME,
    				Context.MODE_PRIVATE);
    		Editor edit = sp.edit();
    		edit.putString(key, value);
    		edit.commit();
    		key = null;
    		value = null;
    		edit = null;
    		sp = null;
    		context = null;
    	}
    
    	/**
    	 * 保存字符串数据类型
    	 * 
    	 * @param context
    	 * @param keys
    	 * @param values
    	 */
    	public static void setStringParams(Context context, String[] keys,
    			String[] values) {
    		SharedPreferences sp = context.getSharedPreferences(SP_NAME,
    				Context.MODE_PRIVATE);
    		Editor edit = sp.edit();
    		for (int i = 0; i < keys.length; i++) {
    			edit.putString(keys[i], values[i]);
    		}
    		keys = null;
    		values = null;
    		edit.commit();
    		edit = null;
    		sp = null;
    		context = null;
    	}
    
    	/**
    	 * 保存所有数据类型 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
    	 * 
    	 * @param context
    	 * @param key
    	 * @param object
    	 */
    	public static void setParam(Context context, String key, Object object) {
    
    		String type = object.getClass().getSimpleName();
    		SharedPreferences sp = context.getSharedPreferences(SP_NAME,
    				Context.MODE_PRIVATE);
    		SharedPreferences.Editor editor = sp.edit();
    
    		if ("String".equals(type)) {
    			editor.putString(key, (String) object);
    		} else if ("Integer".equals(type)) {
    			editor.putInt(key, (Integer) object);
    		} else if ("Boolean".equals(type)) {
    			editor.putBoolean(key, (Boolean) object);
    		} else if ("Float".equals(type)) {
    			editor.putFloat(key, (Float) object);
    		} else if ("Long".equals(type)) {
    			editor.putLong(key, (Long) object);
    		}
    
    		key = null;
    		object = null;
    		editor.commit();
    		editor = null;
    		sp = null;
    		context = null;
    	}
    
    	/**
    	 * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
    	 * 
    	 * @param context
    	 * @param key
    	 * @param defaultObject
    	 * @return
    	 */
    	public static Object getParam(Context context, String key,
    			Object defaultObject) {
    		String type = defaultObject.getClass().getSimpleName();
    		SharedPreferences sp = context.getSharedPreferences(SP_NAME,
    				Context.MODE_PRIVATE);
    
    		if ("String".equals(type)) {
    			return sp.getString(key, (String) defaultObject);
    		} else if ("Integer".equals(type)) {
    			return sp.getInt(key, (Integer) defaultObject);
    		} else if ("Boolean".equals(type)) {
    			return sp.getBoolean(key, (Boolean) defaultObject);
    		} else if ("Float".equals(type)) {
    			return sp.getFloat(key, (Float) defaultObject);
    		} else if ("Long".equals(type)) {
    			return sp.getLong(key, (Long) defaultObject);
    		}
    
    		return null;
    	}
    
    }
    
    Service工具类

    
    import java.util.List;
    
    import android.app.ActivityManager;
    import android.content.Context;
    
    /**
     * 服务是否运行检测帮助类
     * 
     */
    public class ServiceUtil {
    
    	/**
    	 * 判断服务是否后台运行
    	 * 
    	 * @param context
    	 *            Context
    	 * @param className
    	 *            判断的服务名字
    	 * @return true 在运行 false 不在运行
    	 */
    	public static boolean isServiceRun(Context mContext, String className) {
    		boolean isRun = false;
    		ActivityManager activityManager = (ActivityManager) mContext
    				.getSystemService(Context.ACTIVITY_SERVICE);
    		List<ActivityManager.RunningServiceInfo> serviceList = activityManager
    				.getRunningServices(40);
    		int size = serviceList.size();
    		for (int i = 0; i < size; i++) {
    			if (serviceList.get(i).service.getClassName().equals(className) == true) {
    				isRun = true;
    				break;
    			}
    		}
    		return isRun;
    	}
    
    }
    

    Log日志工具类

    
    import android.util.Log;
    
    /**
     * Log显示工具类
     */
    public class LogUtil {
    
    	/**
    	 * 开发
    	 */
    	private final static int DEVELOP = 0;
    
    	/**
    	 * 测试
    	 */
    	private final static int TEST = 1;
    
    	/**
    	 * 上线
    	 */
    	private final static int ONLINE = 2;
    
    	/**
    	 * 当前状态
    	 */
    	private final static int NOWSTATE = DEVELOP;
    
    	public static void info(String msg) {
    		info("volunteer", msg);
    	}
    
    	public static void info(String TAG, String msg) {
    		switch (NOWSTATE) {
    		case DEVELOP:
    			Log.i(TAG, "develop:---" + msg);
    			break;
    		case TEST:
    			Log.i(TAG, "test:---" + msg);
    			break;
    		case ONLINE:
    
    			break;
    
    		}
    	}
    }
    

    MD5 加密工具类

    public final class MD5Utils {
        private static final char Digit[] = {
            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
            'a', 'b', 'c', 'd', 'e', 'f'
        };
        private static final byte PADDING[] = {
            -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
            0, 0, 0, 0
        };
        private static long state[] = new long[4];
        private static long count[] = new long[2];
        private static byte buffer[] = new byte[64];
        private static String digestHexStr;
        private static byte digest[] = new byte[16];
    
        private MD5Utils() {
        }
        
        /**
         * 没有加盐 小写输出
         * @param s
         * @return
         */
        public static String toMD5(String s) {
            md5Init();
            md5Update(s.getBytes(), s.length());
            md5Final();
            digestHexStr = "";
            for(int i = 0; i < 16; i++)
                digestHexStr = digestHexStr + byteHEX(digest[i]);
    
            return digestHexStr;
        }
        
        private static void md5Init() {
            count[0] = 0L;
            count[1] = 0L;
            state[0] = 0x67452301L;
            state[1] = 0xefcdab89L;
            state[2] = 0x98badcfeL;
            state[3] = 0x10325476L;
        }
    
       
    
        private static long F(long x, long y, long z) {
            return (x & y) | ((~x) & z); 
        }
        
        private static long G(long x, long y, long z) {
            return (x & z) | (y & (~z)); 
        }
        
        private static long H(long x, long y, long z) {
            return x ^ y ^ z;
        }
        
        private static long I(long x, long y, long z) {
            return y ^ (x | (~z));
        }
    
        private static long FF(long l, long l1, long l2, long l3, 
                long l4, long l5, long l6) {
            l += F(l1, l2, l3) + l4 + l6;
            l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
            l += l1;
            return l;
        }
    
        private static long GG(long l, long l1, long l2, long l3, 
                long l4, long l5, long l6) {
            l += G(l1, l2, l3) + l4 + l6;
            l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
            l += l1;
            return l;
        }
    
        private static long HH(long l, long l1, long l2, long l3, 
                long l4, long l5, long l6) {
            l += H(l1, l2, l3) + l4 + l6;
            l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
            l += l1;
            return l;
        }
    
        private static long II(long l, long l1, long l2, long l3, 
                long l4, long l5, long l6) {
            l += I(l1, l2, l3) + l4 + l6;
            l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
            l += l1;
            return l;
        }
    
        private static void md5Update(byte abyte0[], int i) {
            byte abyte1[] = new byte[64];
            int k = (int)(count[0] >>> 3) & 0x3f;
            if ((count[0] += i << 3) < (long)(i << 3))
                count[1]++;
            count[1] += i >>> 29;
            int l = 64 - k;
            int j;
            if (i >= l) {
                md5Memcpy(buffer, abyte0, k, 0, l);
                md5Transform(buffer);
                for(j = l; j + 63 < i; j += 64) {
                    md5Memcpy(abyte1, abyte0, 0, j, 64);
                    md5Transform(abyte1);
                }
                k = 0;
            } else {
                j = 0;
            }
            md5Memcpy(buffer, abyte0, k, j, i - j);
        }
    
        private static void md5Final() {
            byte abyte0[] = new byte[8];
            Encode(abyte0, count, 8);
            int i = (int)(count[0] >>> 3) & 0x3f;
            int j = i >= 56 ? 120 - i : 56 - i;
            md5Update(PADDING, j);
            md5Update(abyte0, 8);
            Encode(digest, state, 16);
        }
    
        private static void md5Memcpy(byte abyte0[], byte abyte1[], int i, int j, int k) {
            for(int l = 0; l < k; l++)
                abyte0[i + l] = abyte1[j + l];
        }
    
        private static void md5Transform(byte abyte0[]) {
            long l = state[0];
            long l1 = state[1];
            long l2 = state[2];
            long l3 = state[3];
            long al[] = new long[16];
            Decode(al, abyte0, 64);
            l = FF(l, l1, l2, l3, al[0], 7L, 0xd76aa478L);
            l3 = FF(l3, l, l1, l2, al[1], 12L, 0xe8c7b756L);
            l2 = FF(l2, l3, l, l1, al[2], 17L, 0x242070dbL);
            l1 = FF(l1, l2, l3, l, al[3], 22L, 0xc1bdceeeL);
            l = FF(l, l1, l2, l3, al[4], 7L, 0xf57c0fafL);
            l3 = FF(l3, l, l1, l2, al[5], 12L, 0x4787c62aL);
            l2 = FF(l2, l3, l, l1, al[6], 17L, 0xa8304613L);
            l1 = FF(l1, l2, l3, l, al[7], 22L, 0xfd469501L);
            l = FF(l, l1, l2, l3, al[8], 7L, 0x698098d8L);
            l3 = FF(l3, l, l1, l2, al[9], 12L, 0x8b44f7afL);
            l2 = FF(l2, l3, l, l1, al[10], 17L, 0xffff5bb1L);
            l1 = FF(l1, l2, l3, l, al[11], 22L, 0x895cd7beL);
            l = FF(l, l1, l2, l3, al[12], 7L, 0x6b901122L);
            l3 = FF(l3, l, l1, l2, al[13], 12L, 0xfd987193L);
            l2 = FF(l2, l3, l, l1, al[14], 17L, 0xa679438eL);
            l1 = FF(l1, l2, l3, l, al[15], 22L, 0x49b40821L);
            l = GG(l, l1, l2, l3, al[1], 5L, 0xf61e2562L);
            l3 = GG(l3, l, l1, l2, al[6], 9L, 0xc040b340L);
            l2 = GG(l2, l3, l, l1, al[11], 14L, 0x265e5a51L);
            l1 = GG(l1, l2, l3, l, al[0], 20L, 0xe9b6c7aaL);
            l = GG(l, l1, l2, l3, al[5], 5L, 0xd62f105dL);
            l3 = GG(l3, l, l1, l2, al[10], 9L, 0x2441453L);
            l2 = GG(l2, l3, l, l1, al[15], 14L, 0xd8a1e681L);
            l1 = GG(l1, l2, l3, l, al[4], 20L, 0xe7d3fbc8L);
            l = GG(l, l1, l2, l3, al[9], 5L, 0x21e1cde6L);
            l3 = GG(l3, l, l1, l2, al[14], 9L, 0xc33707d6L);
            l2 = GG(l2, l3, l, l1, al[3], 14L, 0xf4d50d87L);
            l1 = GG(l1, l2, l3, l, al[8], 20L, 0x455a14edL);
            l = GG(l, l1, l2, l3, al[13], 5L, 0xa9e3e905L);
            l3 = GG(l3, l, l1, l2, al[2], 9L, 0xfcefa3f8L);
            l2 = GG(l2, l3, l, l1, al[7], 14L, 0x676f02d9L);
            l1 = GG(l1, l2, l3, l, al[12], 20L, 0x8d2a4c8aL);
            l = HH(l, l1, l2, l3, al[5], 4L, 0xfffa3942L);
            l3 = HH(l3, l, l1, l2, al[8], 11L, 0x8771f681L);
            l2 = HH(l2, l3, l, l1, al[11], 16L, 0x6d9d6122L);
            l1 = HH(l1, l2, l3, l, al[14], 23L, 0xfde5380cL);
            l = HH(l, l1, l2, l3, al[1], 4L, 0xa4beea44L);
            l3 = HH(l3, l, l1, l2, al[4], 11L, 0x4bdecfa9L);
            l2 = HH(l2, l3, l, l1, al[7], 16L, 0xf6bb4b60L);
            l1 = HH(l1, l2, l3, l, al[10], 23L, 0xbebfbc70L);
            l = HH(l, l1, l2, l3, al[13], 4L, 0x289b7ec6L);
            l3 = HH(l3, l, l1, l2, al[0], 11L, 0xeaa127faL);
            l2 = HH(l2, l3, l, l1, al[3], 16L, 0xd4ef3085L);
            l1 = HH(l1, l2, l3, l, al[6], 23L, 0x4881d05L);
            l = HH(l, l1, l2, l3, al[9], 4L, 0xd9d4d039L);
            l3 = HH(l3, l, l1, l2, al[12], 11L, 0xe6db99e5L);
            l2 = HH(l2, l3, l, l1, al[15], 16L, 0x1fa27cf8L);
            l1 = HH(l1, l2, l3, l, al[2], 23L, 0xc4ac5665L);
            l = II(l, l1, l2, l3, al[0], 6L, 0xf4292244L);
            l3 = II(l3, l, l1, l2, al[7], 10L, 0x432aff97L);
            l2 = II(l2, l3, l, l1, al[14], 15L, 0xab9423a7L);
            l1 = II(l1, l2, l3, l, al[5], 21L, 0xfc93a039L);
            l = II(l, l1, l2, l3, al[12], 6L, 0x655b59c3L);
            l3 = II(l3, l, l1, l2, al[3], 10L, 0x8f0ccc92L);
            l2 = II(l2, l3, l, l1, al[10], 15L, 0xffeff47dL);
            l1 = II(l1, l2, l3, l, al[1], 21L, 0x85845dd1L);
            l = II(l, l1, l2, l3, al[8], 6L, 0x6fa87e4fL);
            l3 = II(l3, l, l1, l2, al[15], 10L, 0xfe2ce6e0L);
            l2 = II(l2, l3, l, l1, al[6], 15L, 0xa3014314L);
            l1 = II(l1, l2, l3, l, al[13], 21L, 0x4e0811a1L);
            l = II(l, l1, l2, l3, al[4], 6L, 0xf7537e82L);
            l3 = II(l3, l, l1, l2, al[11], 10L, 0xbd3af235L);
            l2 = II(l2, l3, l, l1, al[2], 15L, 0x2ad7d2bbL);
            l1 = II(l1, l2, l3, l, al[9], 21L, 0xeb86d391L);
            state[0] += l;
            state[1] += l1;
            state[2] += l2;
            state[3] += l3;
        }
    
        private static void Encode(byte abyte0[], long al[], int i) {
            int j = 0;
            for(int k = 0; k < i; k += 4) {
                abyte0[k] = (byte)(int)(al[j] & 255L);
                abyte0[k + 1] = (byte)(int)(al[j] >>> 8 & 255L);
                abyte0[k + 2] = (byte)(int)(al[j] >>> 16 & 255L);
                abyte0[k + 3] = (byte)(int)(al[j] >>> 24 & 255L);
                j++;
            }
        }
    
        private static void Decode(long al[], byte abyte0[], int i) {
            int j = 0;
            for (int k = 0; k < i; k += 4) {
                al[j] = b2iu(abyte0[k]) | b2iu(abyte0[k + 1]) << 8 | b2iu(abyte0[k + 2]) << 16 | b2iu(abyte0[k + 3]) << 24;
                j++;
            }
        }
    
        private static long b2iu(byte byte0) {
            return byte0 >= 0 ? byte0 : byte0 & 0xff;
        }
    
        private static String byteHEX(byte byte0) {
            char ac[] = new char[2];
            ac[0] = Digit[byte0 >>> 4 & 0xf];
            ac[1] = Digit[byte0 & 0xf];
            return new String(ac);
        }
        
        
        public static void main(String[] args) {
    		System.out.println(toMD5("123456"));
    	}
    }
    
    可逆加密算法工具类

    
    import java.io.UnsupportedEncodingException;
    
    public class Base64Utils {
    	private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D',
    			'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
    			'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
    			'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
    			'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
    			'4', '5', '6', '7', '8', '9', '+', '/' };
    	private static byte[] base64DecodeChars = new byte[] { -1, -1, -1, -1, -1,
    			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    			-1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59,
    			60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
    			10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
    			-1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
    			38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
    			-1, -1 };
    
    	/**
    	 * 加密
    	 * 
    	 * @param data
    	 * @return
    	 */
    	public static String encode(byte[] data) {
    		StringBuffer sb = new StringBuffer();
    		int len = data.length;
    		int i = 0;
    		int b1, b2, b3;
    		while (i < len) {
    			b1 = data[i++] & 0xff;
    			if (i == len) {
    				sb.append(base64EncodeChars[b1 >>> 2]);
    				sb.append(base64EncodeChars[(b1 & 0x3) << 4]);
    				sb.append("==");
    				break;
    			}
    			b2 = data[i++] & 0xff;
    			if (i == len) {
    				sb.append(base64EncodeChars[b1 >>> 2]);
    				sb.append(base64EncodeChars[((b1 & 0x03) << 4)
    						| ((b2 & 0xf0) >>> 4)]);
    				sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);
    				sb.append("=");
    				break;
    			}
    			b3 = data[i++] & 0xff;
    			sb.append(base64EncodeChars[b1 >>> 2]);
    			sb.append(base64EncodeChars[((b1 & 0x03) << 4)
    					| ((b2 & 0xf0) >>> 4)]);
    			sb.append(base64EncodeChars[((b2 & 0x0f) << 2)
    					| ((b3 & 0xc0) >>> 6)]);
    			sb.append(base64EncodeChars[b3 & 0x3f]);
    		}
    		return sb.toString();
    	}
    
    	/**
    	 * 解密
    	 * 
    	 * @param str
    	 * @return
    	 */
    	public static byte[] decode(String str) {
    		try {
    			return decodePrivate(str);
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return new byte[] {};
    	}
    
    	private static byte[] decodePrivate(String str)
    			throws UnsupportedEncodingException {
    		StringBuffer sb = new StringBuffer();
    		byte[] data = null;
    		data = str.getBytes("US-ASCII");
    		int len = data.length;
    		int i = 0;
    		int b1, b2, b3, b4;
    		while (i < len) {
    
    			do {
    				b1 = base64DecodeChars[data[i++]];
    			} while (i < len && b1 == -1);
    			if (b1 == -1)
    				break;
    
    			do {
    				b2 = base64DecodeChars[data[i++]];
    			} while (i < len && b2 == -1);
    			if (b2 == -1)
    				break;
    			sb.append((char) ((b1 << 2) | ((b2 & 0x30) >>> 4)));
    
    			do {
    				b3 = data[i++];
    				if (b3 == 61)
    					return sb.toString().getBytes("iso8859-1");
    				b3 = base64DecodeChars[b3];
    			} while (i < len && b3 == -1);
    			if (b3 == -1)
    				break;
    			sb.append((char) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));
    
    			do {
    				b4 = data[i++];
    				if (b4 == 61)
    					return sb.toString().getBytes("iso8859-1");
    				b4 = base64DecodeChars[b4];
    			} while (i < len && b4 == -1);
    			if (b4 == -1)
    				break;
    			sb.append((char) (((b3 & 0x03) << 6) | b4));
    		}
    		return sb.toString().getBytes("iso8859-1");
    	}
    
    }

    源码下载

    展开全文
  • Android开发工具类集锦

    千次阅读 2015-10-25 12:29:15
    概述本人做android开发已有段日子了,在开发的过程中一直使用着工具类,包括别人已经封装好的工具类以及自己封装的工具类,本篇博客向大家介绍自己在开发过程中经常使用到的一些简单实用的工具类,在文章末尾将会献...

    概述

    本人做android开发已有段日子了,在开发的过程中一直使用着工具类,包括别人已经封装好的工具类以及自己封装的工具类,本篇博客向大家介绍自己在开发过程中经常使用到的一些简单实用的工具类,在文章末尾将会献上博客中工具类的代码。

    1,AppUtils

    AppUtils封装了和我们android整个应用(Application)相关的一些方法

    • 方法说明
      1. getPackageName(Context ctx):获取当前应用的包名
      2. getAppName(Context ctx):获取当前应用的名称
      3. getVersionName(Context ctx):获取当前应用版本名称
      4. getDeviceInfo(Context context):获取当前设备的相关信息(包括手机号码,sim卡号ICCID等相关信息)
      5. isApplicationBroughtToBackgroundByTask(String packageName, Context context):判断当前应用程序是否处于后台,通过getRunningTasks的方式,true 在后台; false 在前台
      6. getMetaValue(Context context, String metaKey):获取Manifest中的meta-data值
      7. doNullStr(String str):得到非null字符串,如果为空则赋予空字符串(“”),否则等于原来的值

    2,CheckUtils

    该工具类封装了一些常见的格式验证的方法,不熟悉正则的朋友有福了

    • 功能说明:
      1. StrIsNull(String str):判断字符串是否为空 符合返回ture
      2. StrNotNull(String str):判断字符串是非空 符合返回ture
      3. doNullStr(String str):得到非null字符串,如果为空则赋予空字符串(“”),否则等于原来的值
      4. doNullStr(String str, String defaut):得到非null字符串,如果为空则赋予默认值default,否则等于原来的值
      5. isEmail(String str):判断字段是否为Email 符合返回ture
      6. isPhone(String str):判断是否为电话号码 符合返回ture
      7. isMobile(String str):判断是否为手机号码 符合返回ture
      8. isUrl(String str):判断是否为Url 符合返回ture
      9. isNumber(String str):判断字段是否为数字 正负整数 正负浮点数 符合返回ture
      10. isInteger(String str):判断字段是否为INTEGER 符合返回ture
      11. isINTEGER_NEGATIVE(String str):判断字段是否为正整数正则表达式 >=0 符合返回ture
      12. isINTEGER_POSITIVE(String str):判断字段是否为负整数正则表达式 <=0 符合返回ture
      13. isDouble(String str):判断字段是否为DOUBLE 符合返回ture
      14. isDOUBLE_NEGATIVE(String str):判断字段是否为正浮点数正则表达式 >=0 符合返回ture
      15. isDOUBLE_POSITIVE(String str):判断字段是否为负浮点数正则表达式 <=0 符合返回ture
      16. isDate(String str):判断字段是否为日期 符合返回ture
      17. isDate1(String str):验证2010-12-10
      18. isAge(String str):判断字段是否为年龄 符合返回ture
      19. isLengOut(String str, int leng):判断字段是否超长 字串为空返回fasle, 超过长度{leng}返回ture 反之返回false
      20. isIdCard(String str):判断字段是否为身份证 符合返回ture
      21. isCode(String str):判断字段是否为邮编 符合返回ture
      22. isEnglish(String str):判断字符串是不是全部是英文字母
      23. isENG_NUM(String str):判断字符串是不是全部是英文字母+数字
      24. isENG_NUM_(String str):判断字符串是不是全部是英文字母+数字+下划线
      25. filterStr(String str):过滤特殊字符串 返回过滤后的字符串
      26. isJigouCode(String str):校验机构代码格式
      27. isSTR_NUM(String str):判断字符串是不是数字组成
      28. Regular(String str, String pattern):匹配是否符合正则表达式pattern 匹配返回true

    好吧,这个工具类代码量有点大,其实每个工具类里面注释都好清楚,看名字就知道

    3,CollectionUtils

    自己封装了一些和集合有关的方法

    • 功能说明
      1. isNotNull:判断一个集合是否可用(不为空且容量大于0)
      2. list2map:list转为map
      3. map2list:map转list

    4,CommonUtils

    常用的工具类

    • 功能说明:
      1. isNetworkAvailable(Context context):判断当前网络是否可用
      2. isWifi(Context context):验证是否是wifi连接
      3. isMobile(Context context):验证是否是移动网络
      4. checkSdCard():验证sd卡是否存在
      5. openSetting(Activity activity):打开网络设置界面

    5,HttpUtils

    Http请求的工具类

    • 功能说明:
      1. 异步的Get请求
      2. 异步的Post请求
      3. Get请求,获得返回数据
      4. 向指定 URL 发送POST方法的请求

    具体方法使用看代码注释,很清楚

    6,LogUtils

    日志统一管理工具类,这个不用多说,直接看代码

    7,PictureUtils

    图片处理相关工具类,代码量有点大,直接下载看注释说明,很清楚

    8,PixelUtil

    像素转换工具,CustomApplcation指的是自己定义的application类,一个应用只有一个application类,它代表着当前这个应用

    • 功能说明:
      1. px2dp(float value):px转为dp
      2. int px2dp(float value, Context context):px转dp,上面方法的重载
      3. sp2px(float value):sp转px
      4. sp2px(float value,Context context):sp转px
      5. px2sp(float value):px转sp
      6. px2sp(float value, Context context):px转sp

    9,ScreenUtils

    获得屏幕相关的辅助类

    • 功能说明
      1. getScreenWidth:获取屏幕的宽,单位像素
      2. getScreenHeight:获取屏幕的高,单位像素
      3. getStatusHeight:获得状态栏的高度
      4. snapShotWithStatusBar:获取当前屏幕截图,包含状态栏
      5. snapShotWithoutStatusBar:获取当前屏幕截图,不包含状态栏:

    10,SDCardUtils

    SD卡相关的辅助类

    • 功能说明:
      1. isSDCardEnable:判断sd卡是否可用
      2. checkSDStatus:判断是否装有SD卡、是否可读写、是否有空间
      3. getSDCardPath:获取SD卡路径
      4. getSDCardAllSize:获取SD卡的剩余容量 单位byte
      5. getFreeBytes:获取指定路径所在空间的剩余可用容量字节数,单位byte
      6. getRootDirectoryPath:获取系统存储路径
      7. copyFileToFile:复制文件至某个文件夹
      8. byte2Oral:字节的大小,转成口头语

    11,SecurityCode

    生成随机验证码

    12,SecurityCode

    生成随机验证码

    • 功能说明:
      1. createBitmap:生成验证码图片
      2. createCode:生成验证码(辅助createBitmap)
      3. randomColor:随机颜色(辅助createBitmap)

    13,SoftKeyboardUtils

    软键盘工具类,切换软键盘显示与关闭,显示,关闭软键盘

    • 功能说明
      1. popSoftKeyboard:显示和隐藏软键盘 View : EditText、TextView isShow : true = show , false = hide
      2. toggleInput: 切换软键盘的状态, 如当前为收起变为弹出,若当前为弹出变为收起
      3. showSoftKeyboard:显示软键盘
      4. hideSoftKeyboard:隐藏软键盘

    14,SPUtils

    SharedPreferences工具类,使用时将FILE_NAME改改就行了

    15,TimeUtil

    时间格式转换工具

    • 功能说明
      1. getDescriptionTimeFromTimestamp:根据时间戳获取描述性时间,如3分钟前,1天前
      2. getCurrentTime:获取当前日期的指定格式的字符串,如yyyy-MM-dd HH:MM
      3. dateToString:date类型转换为String类型
      4. longToString:long类型转换为String类型
      5. stringToDate:string类型转换为date类型
      6. longToDate:long转换为Date类型
      7. stringToLong:string类型转换为long类型
      8. dateToLong: date类型转换为long类型
      9. getTime:将long的时间转换成yy-MM-dd HH:mm格式
      10. getHourAndMin:将long的时间转换成HH:mm格式,只要小时和分钟
      11. getFormatTime:将long时间转换成指定格式的时间
      12. getChatTime:获取聊天时间:因为sdk的时间默认到秒故应该乘1000

    本篇文章介绍的工具类打包下载地址:

    http://download.csdn.net/detail/ydxlt/9211103

    展开全文
  • 在软件开发工程中 ,为了方便开发 ,我们都会定义一个 工具类,管理类,业务类。 例如:现在要实现两个功能,管理SM_ACCOUNT,SM_TELENT_ACCOUNT。 建立文件夹,类名如下: synale.common.Util.java synale...
    在软件开发工程中 ,为了方便开发 ,我们都会定义一个 工具类,管理类,业务类。
    
    例如:现在要实现两个功能,管理SM_ACCOUNT,SM_TELENT_ACCOUNT。
    	  建立文件夹,类名如下:
    	  
    	  synale.util.Util.java
    	  synale.util.AMUtil.java
    	  synale.logic.AccountManager.java
    	  synale.app.SM_ACCOUNT.java
    	  synale.app.M_TELENT_ACCOUNT
    	  
    	  备注:AMUtil类是继承Util.java的。所有的公共的方法都放在 Util.java类里面,所有业务类都继承工具类。
    			这样管理起来 代码可读性 高 。重用性强 且方便维护
    
    
    
    展开全文
  • Android 最常用的快速开发工具类

    万次阅读 2014-09-24 17:20:59
    Android开发工具类能很好的封装一些常用的操作,以后使用起来也非常方便,我把我经常使用的工具类分享给大家。FileCache:package com.pztuan.common.util; import java.io.File; import android.content.Context...
  • 原文:java常用开发工具类大全,涵盖常见工作的问题(超赞) 源代码下载地址:http://www.zuidaima.com/share/1845027886320640.htm /** *方法说明:实现service方法 *输入参数:HttpServletRequest req...
  • Android快速开发工具类

    千次阅读 2015-04-09 11:25:38
    查看原文 点我下载代码更多交流可加技术讨论群:71262831 扫一扫,一起坐看风云变幻。扫描下方二维码关注it达人(也可微信搜索:it达人)。 为您推送最新开发资源、分享it牛人职业发展经验:
  • Andorid开发工具类之——SPUtils

    千次阅读 2016-12-21 13:58:50
    SharedPreferences 是开发中经常用到的保存数据的一种方式,之前在网上看到一些类似的工具类,但是都没有达到理想的要求,搜集了网上的资料后自己又改造了代码,现在达到了理想的要求,上代码: public class ...
  • iOS开发工具类,包含常用功能,为方便使用,特为常用功能封装并且使用宏定义方式运用。在做开发时候能用少点代码就用少点,封装起来的工具类更好用,体积小,使用方便,使开发高效快捷。工具类不定期更新,请关注...
  • 我在Github上面主推了一个项目, 是工作之中一点点收集的实用工具类, 可以减少很多查询方法或者写代码的时间, 希望对大家有所帮助. https://github.com/SenhLinsh/LshUtils简介如下:LshUtils个人收集的常用工具类...
  • Android开发工具类之DownloadManagerPro

    千次阅读 2016-05-10 16:51:57
    这个工具类就是Android系统下载管理DownloadManager的一个增强类,提供了一些增强方法。或许大家不太了解这个安卓系统自带的DownloadManager这个类,我先做一个简单介绍吧。DownloadManager是系统开放给第三方应用...
  • 史上最全的常用开发工具类收集(持续更新中)

    万次阅读 多人点赞 2017-05-24 10:17:58
    缓存工具类 → AppACache put : 保存String数据到缓存中 getAsString : 读取String数据 getAsJSONObject : 读取JSONObject数据 getAsJSONArray : 读取JSONArray数据 getAsBinary : 获取byte数据 getAsObject : ...
  • Android开发工具类--NetUtils

    千次阅读 2017-01-18 18:02:48
    详细代码,能直接使用。/** * Created by YunHaoZ on 2017/1/18. */import android.content.Intent; import android.app.Activity; import android.content.Context; import android.net.ConnectivityManager;...
  • import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager;... * 获取应用版本信息工具 * Created by Mrj */ public class AppVersionUtil { /** *
  • 有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限:   第一个权限是获得WIFI的IP地址需要使用的,第二个权限是获得移动网络的IP需要使用的,...
  • SharedPreferences 是开发中经常用到的保存数据的一种方式,之前在网上看到一些类似的工具类,但是都没有达到理想的要求,搜集了网上的资料后自己又改造了代码,现在达到了理想的要求, 加入泛型方法,可以根据输入...
  • ...在这之前,我们在程序中... 是国内领先的针对移动应用的一站式云端服务,BaaS 领域的先行者,专注于为应用开发者提供一流的工具和平台。 官网  https://leancloud.cn/intro.html GitHub  ...
  • 最近开发的一个项目使用到了图片加载上传和保存,由于是接受别人的做,也基本上做完了。但是程序已启动到需要加载图片上传到服务器的界面的时候内存就暴涨,虽然也没有oom,估计旧点的手机肯定会爆,只要不启动到图片...
  • 很多时候,我们采用java来开发相关应用软件的时候,需要自己开发一些工具类并把它封装在utils工具类中,然后在需要使用的地方直接“类.方法”直接调用!本文将介绍两个比较常用的工具类,分别是日期工具类DateUtils...
  • Android开发常用工具类

    千次阅读 2015-09-21 16:58:16
    Android开发中必备的一些工具类,稍作整理,供快速开发使用~ 1、日期工具类 package cn.yyh.oa.utils.speed; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期...
  • Android快速开发系列 10个常用工具类

    万次阅读 多人点赞 2014-09-05 09:27:33
    http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自【张鸿洋的博客】打开大家手上的项目,基本都会有一大批的辅助类,今天特此整理出10个基本每个项目中都会使用的工具类,用于快速开发~~在此...
  • 采用Java开发应用软件,如果数据库层采用蛋疼的纯生jdbc时候,需要考虑到将查询数据库得到的结果集resultRest进行转换为JsonArray并将其返回到页面!当然了,现在对于“将查询数据库得到的结果集resultRest转换为...
  • 微信小程序开发过程中,关于时间的处理常常会有不同的格式要求,那么封装一个满足不同格式的通用时间工具类显得尤为重要。结合笔者多年的开发经验,现在把封装的时间工具类分享给大家,仅供参考。 新建一个工具类...
  • android开发使用的工具类

    千次阅读 2016-03-04 15:45:31
    github地址:https://github.com/zhanglihow/LazyAS Gradle可以直接:compile '...工具描述AnimationUtils动画工具类AppUtilsAPP相关信息工具类AssetDatabaseOpenHelper目录资源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,109
精华内容 20,043
关键字:

开发工具类