当前位置: 代码迷 >> Android >> 技术小结-android篇(四)-工具类总结
  详细解决方案

技术小结-android篇(四)-工具类总结

热度:88   发布时间:2016-04-28 00:32:49.0
技术总结--android篇(四)--工具类总结

StringUtil(视个人需要进行添加)

public class StringUtil {		public static boolean isMail(String string) {		if (null != string) {			if (string.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")) {				return true;			}		}		return false;	}		/**	 * 判断手机号码的正确性	 * 	 * @param mobiles	 * @return	 */	public static boolean isMobileNumber(String mobiles) {				if (null != mobiles) {			Pattern p = Pattern					.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");			Matcher m = p.matcher(mobiles);			return m.matches();		}else {			return false;		}	}	/**	 * 是否为 null 或者为空字符串	 * @param string	 * @return false if null || ""	 */	public static boolean isNotNull(String string) {				if (string == null || "".equals(string)) {			return false;		}else {			return true;		}	}		/**	 * 判断字符串是否是整数	 */	public static boolean isInteger(String value) {		try {			Integer.parseInt(value);			return true;		} catch (NumberFormatException e) {			return false;		}	}			/**	 * 字符串长度补齐,方便打印时对齐,美化打印页面,不过中文计算好像有点问题	 * 	 * @param strs	 *            源字符	 * @param len	 *            指定字符长度	 * @return	 * @throws UnsupportedEncodingException 	 */	public static String Fix_String_Lenth(int type ,String strs, int len) {		String strtemp = strs;		int len1 = strs.length();		switch (type) {		case 0:			while (strtemp.length() < len*"我".length()) {				strtemp += " ";}			break;			case 1:				while (strtemp.length() < len) {					strtemp += " ";}				break;		default:						break;		}				return strtemp;	}	}

ImageUtil

public class ImageUtil{	public static byte[] getimage(String path) throws Exception	{		URL url = new URL(path);// 设置URL		HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 打开链接		conn.setRequestMethod("GET");// 设置链接方式		conn.setConnectTimeout(5 * 1000);// 设置链接超时		InputStream inStream = conn.getInputStream();// 得到输入泿		byte[] data = readinputStream(inStream);		return data;	}	public static byte[] readinputStream(InputStream inputStream)	{		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();		byte[] buffer = new byte[1024];		int lns = 0;		try {			while ((lns = inputStream.read(buffer)) != -1)			{				outputStream.write(buffer, 0, lns);			}		} catch (IOException e) {			e.printStackTrace();		}		return outputStream.toByteArray();	}	public static Bitmap getBitmapFromBase64String(String imageString)	{		// 对字节数组字符串进行Base64解码并生成图燿		if (imageString == null) // 图像数据为空			return null;		byte[] data = Base64.decode(imageString, Base64.DEFAULT);		return BitmapFactory.decodeByteArray(data, 0, data.length);	}		public static String getBitmapString(String image)	{		Bitmap bitmap = BitmapFactory.decodeFile(image);		ByteArrayOutputStream baos = new ByteArrayOutputStream();		bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);		byte[] data = baos.toByteArray();		return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符	}		public static String getBase64StringFromFile(String imageFile)	{		// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理		InputStream in = null;		byte[] data = null;		// 读取图片字节数组		try		{			in = new FileInputStream(imageFile);			data = new byte[in.available()];			in.read(data);			in.close();		}		catch (IOException e)		{			e.printStackTrace();		}		// 对字节数组Base64编码		return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符	}			/**	 * drawable -> Bitmap	 * @param drawable	 * @return	 */	public static Bitmap drawableToBitmap(Drawable drawable) {                  Bitmap bitmap = Bitmap                          .createBitmap(                                          drawable.getIntrinsicWidth(),                                          drawable.getIntrinsicHeight(),                                          drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888                                                          : Bitmap.Config.RGB_565);          Canvas canvas = new Canvas(bitmap);          //canvas.setBitmap(bitmap);          drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());          drawable.draw(canvas);          return bitmap;  	}		/**	 * resource - > Bitmap	 * @param context	 * @param resId	 * @return	 */	public static Bitmap resourceToBitmap(Context context ,int resId){		Resources res = context.getResources();		Bitmap bitmap = BitmapFactory.decodeResource(res, resId);		return bitmap;  	}			/**	 * Bitmap   - > Bytes	 * @param bm	 * @return	 */	public static byte[] Bitmap2Bytes(Bitmap bm){  	    ByteArrayOutputStream baos = new ByteArrayOutputStream();    	    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    	    return baos.toByteArray();  	}		/**	 * Bytes  - > Bitmap	 * @param b	 * @return	 */	public static Bitmap Bytes2Bitmap(byte[] b){          if(b.length!=0){              return BitmapFactory.decodeByteArray(b, 0, b.length);          }          else {              return null;          }    }  	/**	 * bitmap -> Base64	 * @param bitmap	 * @return	 */	public static String bitmapToBase64(Bitmap bitmap) {  		  	    String result = null;  	    ByteArrayOutputStream baos = null;  	    try {  	        if (bitmap != null) {  	            baos = new ByteArrayOutputStream();  	            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);  	  	            baos.flush();  	            baos.close();  	  	            byte[] bitmapBytes = baos.toByteArray();  	            result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);  	        }  	    } catch (IOException e) {  	        e.printStackTrace();  	    } finally {  	        try {  	            if (baos != null) {  	                baos.flush();  	                baos.close();  	            }  	        } catch (IOException e) {  	            e.printStackTrace();  	        }  	    }  	    return result;  	}		//获取图片	public static Bitmap getimage(ContentResolver cr, Uri uri, int screeWidth,int screeHeight) {		try {			Bitmap bitmap = null;			BitmapFactory.Options newOpts = new BitmapFactory.Options();			// options.inJustDecodeBounds=true,图片不加载到内存中			newOpts.inJustDecodeBounds = true;			BitmapFactory.decodeStream(cr.openInputStream(uri), null, newOpts);			newOpts.inJustDecodeBounds = false;			int imgWidth = newOpts.outWidth;			int imgHeight = newOpts.outHeight;			// 缩放比,1表示不缩放			int scale = 1;			if (imgWidth > imgHeight && imgWidth > screeWidth) {				scale = (int) (imgWidth / screeWidth);			} else if (imgHeight > imgWidth && imgHeight > screeHeight) {				scale = (int) (imgHeight / screeHeight);			}			newOpts.inSampleSize = scale;// 设置缩放比例			bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri), null,newOpts);			return bitmap;		} catch (Exception e) {			e.printStackTrace();			return null;		}	}	}

DateUtil

public class DateUtil {	public final static String yyyy = "yyyy";	public final static String MM_dd = "MM-dd";	public final static String dd = "dd";	public final static String yyyy_MM_dd = "yyyy-MM-dd";	public final static String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm";	public final static String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";	public final static String yyyy_MM_dd_HH_mm_ss_SSS = "yyyy-MM-dd HH:mm:ss SSS";	public final static String MM_dd_HH_mm_ss = "MM-dd  HH:mm:ss";	public final static String yyyy_MM_dd_HH_mm_local = "yyyy年MM月dd日 HH:mm";	/**	 * 返回当天日期的字符串,可以自己定格式,格式如上	 * @param pattern	 * @return	 */	public static String now(String pattern) {		SimpleDateFormat df = new SimpleDateFormat(pattern);		return df.format(Calendar.getInstance().getTime());	}	public static String now_yyyy() {		return now(yyyy);	}	public static String now_MM_dd() {		return now(MM_dd);	}	public static String now_dd() {		return now(dd);	}	public static String now_yyyy_MM_dd() {		return now(yyyy_MM_dd);	}	public static String now_yyyy_MM_dd_HH_mm_ss() {		return now(yyyy_MM_dd_HH_mm_ss);	}	public static String now_yyyy_MM_dd_HH_mm_ss_SSS() {		return now(yyyy_MM_dd_HH_mm_ss_SSS);	}	public static String now_MM_dd_HH_mm_ss() {		return now(MM_dd_HH_mm_ss);	}	/**	 * 获得年龄	 * @param birth	 * @return	 */	public static String getAge(String birth) { // 传进来的格式一定要对应1991-05-25		if ("".equals(birth))			return "";		int nowAge = 0;		Date date = strToDateCN_yyyy_MM_dd(birth);		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		int birth_year = calendar.get(Calendar.YEAR);		int birth_month = calendar.get(Calendar.MONTH);		int birth_day = calendar.get(Calendar.DAY_OF_MONTH);		calendar.setTime(new Date());		int now_year = calendar.get(Calendar.YEAR);		int now_month = calendar.get(Calendar.MONTH);		int now_day = calendar.get(Calendar.DAY_OF_MONTH);				nowAge = now_year - birth_year;		if (now_month < birth_month) {			nowAge--;		} else if (now_month == birth_month && now_day < birth_day) {			nowAge--;		}		if (nowAge < 0)			nowAge = 0;		return "" + nowAge;	}	public static String getStauts(String stime,String rtime){		if(stime == null || rtime == null)			return "";		String status = "";		try {			Date sDate = strToDateLoc_yyyy_MM_dd_HH_mm(stime);			Date rDate = strToDateLoc_yyyy_MM_dd_HH_mm(rtime);			Date nDate = new Date();			if(nDate.getTime() < sDate.getTime())				status = "准备中";			else if(nDate.getTime() > rDate.getTime()){				status = "已结束";			}			else				status = "进行中";		} catch (Exception e) {			e.printStackTrace();			status = "";		}		return status;	}			/**	 * 聊天显示	 * @param timeString	 * @return 三小时前、昨天等	 */	private static String getRecentTime(String timeString,Date date) { 		if(timeString == null || "".equals(timeString))			return "";		StringBuilder cn_string = new StringBuilder();		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		int day = calendar.get(Calendar.DAY_OF_YEAR);         //月份中的日		int week = calendar.get(Calendar.WEEK_OF_YEAR);          //年中周		int hour = calendar.get(Calendar.HOUR_OF_DAY);           //时间				int month = calendar.get(Calendar.MONTH)+1;         //月份.显示用		int day_of_week = calendar.get(Calendar.DAY_OF_WEEK)-1;   //周中的日.显示用		if(day_of_week == 0) day_of_week = 7;		int minute = calendar.get(Calendar.MINUTE);             //分钟.显示用				Calendar nowCalendar = Calendar.getInstance();		nowCalendar.setTime(new Date());		int now_day = nowCalendar.get(Calendar.DAY_OF_YEAR);		int now_week = nowCalendar.get(Calendar.WEEK_OF_YEAR);		int now_hour = nowCalendar.get(Calendar.HOUR_OF_DAY);		//时间字符串		StringBuilder hoursString = new StringBuilder(""+hour);		StringBuilder minutesString = new StringBuilder(""+minute);				if(hour<10)			hoursString.insert(0, "0");		if(minute<10)			minutesString.insert(0, "0");				if(day == now_day && hour == now_hour){			cn_string.append("刚刚");		}		else if((now_day - day >=0) &&(now_day - day < 1) && (now_hour - hour < 24) && (now_hour - hour >0)){			cn_string.append(now_hour-hour).append("小时前");		}		else if(now_day == day){			cn_string.append("今天").append(hoursString).append(":").append(minutesString);		}		else if(now_day - day == 1)			cn_string.append("昨天").append(hoursString).append(":").append(minutesString);		else if(now_day - day == 2)			cn_string.append("前天").append(hoursString).append(":").append(minutesString);		else if(day - now_day == 1)			cn_string.append("明天").append(hoursString).append(":").append(minutesString);		else if(day - now_day == 2)			cn_string.append("后天").append(hoursString).append(":").append(minutesString);		else if((week == now_week && day>now_day ) || (week - now_week == 1 && day_of_week == 7))			cn_string.append("周").append(numToUpper(day_of_week)).append(" ").append(hoursString).append(":").append(minutesString);		else if(week - now_week ==1)			cn_string.append("下周").append(numToUpper(day_of_week)).append(" ").append(hoursString).append(":").append(minutesString);		else{  //直接显示			StringBuilder monthString = new StringBuilder(""+month);			int _day = calendar.get(Calendar.DAY_OF_MONTH);         //月份中的日			StringBuilder dayString = new StringBuilder(""+_day);			if(month <10)				monthString.insert(0, "0");			if(_day<10)				dayString.insert(0, "0");			cn_string.append(monthString).append("月").append(dayString).append("日").append(hoursString).append(":").append(minutesString);		}		return cn_string.toString();	}		/**	 * 02-01 12:11:56	 * @param timeString	 * @return	 */	public static String getRecentTimeMM_dd_ss(String timeString){ 		Date date = strToDateMM_dd_ss(timeString);		return getRecentTime(timeString, date);	}		/**	 * 2012年01月03日 12:55	 * @param timeString	 * @return	 */	public static String getRecentTimeyyyy_MM_dd(String timeString){ 		Date date = strToDateLoc_yyyy_MM_dd_HH_mm(timeString);		return getRecentTime(timeString, date);	}		/**	 * 2012-01-03 12:55:12	 * @param timeString	 * @return	 */	public static String getRecentTimeCN_yyyy_MM_dd_HH_mm_ss(String timeString) {		Date date = strToDateCN_yyyy_MM_dd_HH_mm_ss(timeString);		return getRecentTime(timeString, date);	}					/**	 * 是否超过三天,判断是否能上传图片	 * @param runtime	 * @return	 */	public static boolean isOver3Day(String runtime){		boolean is = false;		Date runDate =  strToDateLoc_yyyy_MM_dd_HH_mm(runtime);		Date now = new Date();		if((now.getTime() - runDate.getTime()) > (3*24*60*60*1000)){			is = true;		}		return is;	}		public static String getHi(){		int nowHour = new Date().getHours();		if(nowHour>=0 && nowHour <6){			return "凌晨好!";		}		else if(nowHour>=6 && nowHour<12){			return "上午好!";		}		else if(nowHour>=12 && nowHour<18){			return "下午好!";		}		else{			return "晚上好!";		}	}		public static final String[] zodiacArr = { "猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊" };   	  	public static final String[] constellationArr = { "水瓶座", "双鱼座", "牡羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座",   	        "天蝎座", "射手座", "魔羯座" };   	  	public static final int[] constellationEdgeDay = { 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22 };   	  	/**  	 * 根据日期获取生肖  	 * @return  	 */  	public static String date2Zodica(String birth) {   		if ("".equals(birth))			return "";	    return zodiacArr[Integer.valueOf(birth.split("-")[0]) % 12];   	}   	  	/**  	 * 根据日期获取星座  	 * @param time  	 * @return  	 */  	public static String date2Constellation(String birth) {  // 传进来的格式一定要对应1991-05-25 		Date date = strToDateCN_yyyy_MM_dd(birth);		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		int month = calendar.get(Calendar.MONTH);		int day = calendar.get(Calendar.DAY_OF_MONTH);	    	    if (day < constellationEdgeDay[month]) {   	        month = month - 1;   	    }   	    if (month >= 0) {   	        return constellationArr[month];   	    }   	    //default to return 魔羯   	    return constellationArr[11];   	} 					/**	 * 	 * @param dateString	 *            yyyy年MM月dd日 HH:mm	 * @return like: 明天 15:00	 */	public static String ch_time(String dateString) {//		System.out.println("pppppt-->"+dateString);		String cn_string = null;		Date date = DateUtil.strToDate(dateString);		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);				int hour = calendar.get(Calendar.HOUR_OF_DAY);		int minute = calendar.get(Calendar.MINUTE);		String hString,mString;		if (hour < 10) {			hString = "0" + hour;		}else {			hString = ""+hour;		}		if (minute < 10) {			mString = "0"+minute;		}else {			mString = ""+minute;		}		String time = hString+":"+mString;		hString = null;		mString = null;		//去掉日以下的时间		calendar.clear(Calendar.HOUR_OF_DAY);		calendar.clear(Calendar.HOUR);		calendar.clear(Calendar.MINUTE);		calendar.clear(Calendar.SECOND);		calendar.clear(Calendar.MILLISECOND);				Calendar nowCalendar = Calendar.getInstance();		nowCalendar.clear(Calendar.HOUR_OF_DAY);		nowCalendar.clear(Calendar.HOUR);		nowCalendar.clear(Calendar.MINUTE);		nowCalendar.clear(Calendar.SECOND);		nowCalendar.clear(Calendar.MILLISECOND);				long flag = (calendar.getTimeInMillis() - nowCalendar.getTimeInMillis()				) / (1000 * 60 * 60 * 24);//		System.out.println("ppssss->" + flag);		if (flag == 0) {			cn_string = "今天 " + time;		} else if (flag == 1) {			cn_string = "明天 " + time;		} else if (flag == 2) {			cn_string = "后天 " + time;		} else if (flag <= getDatePlus() + 7 && flag > 0) {			if (!getNextWeekDate(calendar).equals("")) {				cn_string = getNextWeekDate(calendar) + time;			} else {				cn_string = dateString;			}		} else {			cn_string = dateString;		}		time = null;		return cn_string;	}	/**	 * 	 * @param date	 * @param pattern	 * @return	 */	public static String dateToStr(Date date, String pattern) {		if(date == null)			return "";		SimpleDateFormat sdf = new SimpleDateFormat(pattern);		return sdf.format(date);	}	/**	 * 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"	 * 	 * @param inDate	 *            日期时间 " 2002-07-01 11:40:02"	 * @return String 转换后日期时间字符串	 */	public static String dateToStr_yyyy_MM_dd_HH_mm_ss(Date date) {		return dateToStr(date, yyyy_MM_dd_HH_mm_ss);	}	/**	 * 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"	 * 	 * @param inDate	 *            日期时间 " 2002-07-01 11:40:02"	 * @return String 转换后日期时间字符串	 */	public static String dateToStr_yyyy_MM_dd_HH_mm(Date date) {		return dateToStr(date, yyyy_MM_dd_HH_mm);	}	/**	 * yyyy年MM月dd日 HH:mm	 * 	 * @param date	 * @return	 */	public static String dateToStrLocal(Date date) {		return dateToStr(date, yyyy_MM_dd_HH_mm_local);	}	/**	 * 将日期时间型转成字符串 如:" 2002-07-01 11:40:02"	 * 	 * @param inDate	 *            日期时间 " 2002-07-01 11:40:02"	 * @return String 转换后日期时间字符串	 */	public static String dateToStr_MM_dd_HH_mm_ss(Date date) {		return dateToStr(date, MM_dd_HH_mm_ss);	}	/**	 * 将日期型转成字符串 如:"2002-07-01"	 * 	 * @param inDate	 *            日期 "2002-07-01"	 * @return String 转换后日期字符串	 */	public static String dateToStr_yyyy_MM_dd(Date date) {		return dateToStr(date, yyyy_MM_dd);	}	/**	 * 将字符串型(英文格式)转成日期型 如: "Tue Dec 26 14:45:20 CST 2000"	 * 	 * @param DateFormatStr	 *            字符串 "Tue Dec 26 14:45:20 CST 2000"	 * @return Date 日期	 */	public static Date strToDateEN(String shorDateStr) {		Date date = null;		try {			SimpleDateFormat sdf = new SimpleDateFormat(					"EEE MMM dd hh:mm:ss 'CST' yyyy", java.util.Locale.US);			return sdf.parse(shorDateStr);		} catch (Exception e) {			return new Date();		}	}	/**	 * 将字符串型(中文格式)转成日期型 如:"2002-07-01 22:09:55"	 * 	 * @param datestr	 *            字符串 "2002-07-01 22:09:55"	 * @return Date 日期	 */	public static Date strToDateCN_yyyy_MM_dd_HH_mm_ss(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}		/**	 * 将字符串型(中文格式)转成日期型 如:"2002-07-01 22:09"	 * 	 * @param datestr	 *            字符串 "2002-07-01 22:09"	 * @return Date 日期	 */	public static Date strToDateCN_yyyy_MM_dd_HH_mm(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat(yyyy_MM_dd_HH_mm);			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}		/**yyyy_MM_dd_HH_mm	 * @param datestr	 * @return	 */	public static Date strToDateLoc_yyyy_MM_dd_HH_mm(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat(yyyy_MM_dd_HH_mm_local);			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}			/**MM-dd  HH:mm	 * @param datestr	 * @return	 */	public static Date strToDateMM_dd_ss(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat(MM_dd_HH_mm_ss);			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}	/**	 * 	 * @param datestr	 * @return	 */	public static Date strToDateCN_yyyy_MM_dd(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}	/**	 * 	 * @param datestr	 *            yyyy年MM月dd日 HH:mm	 * @return	 */	public static Date strToDate(String datestr) {		Date date = null;		try {			SimpleDateFormat fmt = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");			date = fmt.parse(datestr);		} catch (Exception e) {			return date;		}		return date;	}	/**	 * 转换util.date-->sql.date	 * 	 * @param inDate	 * @return	 */	public static java.sql.Date UtilDateToSqlDate(Date inDate) {		return new java.sql.Date(getDateTime(inDate));	}	private static long getDateTime(Date date) {		Calendar cal = Calendar.getInstance();		cal.setTime(date);		int year = cal.get(Calendar.YEAR);		int month = cal.get(Calendar.MONTH);		int day = cal.get(Calendar.DATE);		cal.set(year, month, day, 0, 0, 0);		long result = cal.getTimeInMillis();		result = result / 1000 * 1000;		return result;	}	/**	 * 遍历刚从数据库里查出来的Map,将里面Timestamp格式化成指定的pattern	 * 	 * @param target	 *            目标map,就是一般是刚从数据库里查出来的	 * @param pattern	 *            格式化规则,从自身取	 */	@Deprecated	public static void formatMapDate(Map target, String pattern) {		for (Object item : target.entrySet()) {			Map.Entry entry = (Map.Entry) item;			if (entry.getValue() instanceof Timestamp) {				SimpleDateFormat sdf = new SimpleDateFormat(pattern);				entry.setValue(sdf.format((Timestamp) entry.getValue()));			}		}	}	/**	 * 日期转化为大小写 chenjiandong 20090609 add	 * 	 * @param date	 * @param type	 *            1;2两种样式1为简体中文,2为繁体中文	 * @return	 */	public static String dataToUpper(Date date, int type) {		Calendar ca = Calendar.getInstance();		ca.setTime(date);		int year = ca.get(Calendar.YEAR);		int month = ca.get(Calendar.MONTH) + 1;		int day = ca.get(Calendar.DAY_OF_MONTH);		return numToUpper(year, type) + "年" + monthToUppder(month, type) + "月"				+ dayToUppder(day, type) + "日";	}	/**	 * 将数字转化为大写	 * 	 * @param num	 * @param type	 * @return	 */	public static String numToUpper(int num, int type) {// type为样式1;2		String u1[] = { "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九" };		String u2[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };		char[] str = String.valueOf(num).toCharArray();		String rstr = "";		if (type == 1) {			for (int i = 0; i < str.length; i++) {				rstr = rstr + u1[Integer.parseInt(str[i] + "")];			}		} else if (type == 2) {			for (int i = 0; i < str.length; i++) {				rstr = rstr + u2[Integer.parseInt(str[i] + "")];			}		}		return rstr;	}		/**	 * 将数字转化为大写	 * 	 * @param num	 * @return	 */	public static String numToUpper(int num) {		String u1[] = { "〇", "一", "二", "三", "四", "五", "六", "日"};		char[] str = String.valueOf(num).toCharArray();		String rstr = "";		for (int i = 0; i < str.length; i++) {			rstr = rstr + u1[Integer.parseInt(str[i] + "")];		}		return rstr;	}	/**	 * 月转化为大写	 * 	 * @param month	 * @param type	 * @return	 */	public static String monthToUppder(int month, int type) {		if (month < 10) {			return numToUpper(month, type);		} else if (month == 10) {			return "十";		} else {			return "十" + numToUpper((month - 10), type);		}	}	/**	 * 日转化为大写	 * 	 * @param day	 * @param type	 * @return	 */	public static String dayToUppder(int day, int type) {		if (day < 20) {			return monthToUppder(day, type);		} else {			char[] str = String.valueOf(day).toCharArray();			if (str[1] == '0') {				return numToUpper(Integer.parseInt(str[0] + ""), type) + "十";			} else {				return numToUpper(Integer.parseInt(str[0] + ""), type) + "十"						+ numToUpper(Integer.parseInt(str[1] + ""), type);			}		}	}	/**	 * 获得当前日期与本周日相差的天数(视星期日为一周最后一天)	 * 	 * @return	 */	public static int getDatePlus() {		Calendar cd = Calendar.getInstance();		// 获得今天是一周的第几天,星期日是第一天,星期一是第二天......		int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);		if (dayOfWeek == 1) {			return 0;		} else {			return 8 - dayOfWeek;		}	}	/**	 * 	 * @param calendar	 * @return	 */	public static String getNextWeekDate(Calendar calendar) {		String date = "";		switch (calendar.get(Calendar.DAY_OF_WEEK)) {		case 1:			date = "下周日 ";			break;		case 2:			date = "下周一 ";			break;		case 3:			date = "下周二 ";			break;		case 4:			date = "下周三 ";			break;		case 5:			date = "下周四 ";			break;		case 6:			date = "下周五 ";			break;		case 7:			date = "下周六 ";			break;		default:			break;		}		return date;	}		public static boolean isToday(String datesString){		boolean isToday = false;		Date date = strToDateCN_yyyy_MM_dd_HH_mm(datesString);		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		int day = calendar.get(Calendar.DAY_OF_YEAR);		Calendar nowCalendar = Calendar.getInstance();		int nowDay = nowCalendar.get(Calendar.DAY_OF_YEAR);		if (nowDay == day) {			isToday = true;		}		return isToday;	}}

FileUtil

public class FileUtil {	public final static int IMG = 0;	public final static int SOUND = 1;	public final static int APK = 2;	public final static int PPT = 3;	public final static int XLS = 4;	public final static int DOC = 5;	public final static int PDF = 6;	public final static int CHM = 7;	public final static int TXT = 8;	public final static int MOVIE = 9;					public static String getBase64StringFromFile(String imageFile)	{		// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理		InputStream in = null;		byte[] data = null;		// 读取图片字节数组		try		{			in = new FileInputStream(imageFile);			data = new byte[in.available()];			in.read(data);			in.close();		}		catch (IOException e)		{			e.printStackTrace();		}		// 对字节数组Base64编码		return Base64.encodeToString(data, Base64.DEFAULT);// 返回Base64编码过的字节数组字符	}		/**	 * @param fileString base64	 * @param filePath  保存路径,包括名字	 * @return	 */	public static boolean saveFileByBase64(String fileString, String filePath) {		// 对字节数组字符串进行Base64解码并生成图燿		if (fileString == null) // 图像数据为空			return false;		byte[] data = Base64.decode(fileString, Base64.DEFAULT);        saveFileByBytes(data, filePath);        return true;    }		/**	 * @param bitmap bitmap	 * @param filePath  保存路径,包括名字	 * @return	 */	public static boolean saveFileByBitmap(Bitmap bitmap, String filePath) {		// 对字节数组字符串进行Base64解码并生成图燿		if (bitmap == null) // 图像数据为空			return false;		byte[] data = ImageUtil.Bitmap2Bytes(bitmap);        saveFileByBytes(data, filePath);        return true;    }			/**	 * @param fileString bytes[]	 * @param filePath  保存路径,包括名字	 * @return	 */	public static boolean saveFileByBytes(byte[] data,String filePath) {		// 对字节数组字符串进行Base64解码并生成图燿        BufferedOutputStream stream = null;        File file = null;        try {        	 file = new File(filePath);             if (!file.exists()) { 				File file2 = new File(filePath.substring(0, filePath.lastIndexOf("/")+1)); 				file2.mkdirs(); 			}            FileOutputStream fstream = new FileOutputStream(file);            stream = new BufferedOutputStream(fstream);            stream.write(data);        } catch (Exception e) {            e.printStackTrace();            return false;        } finally {            if (stream != null) {                try {                    stream.close();                } catch (IOException e1) {                    e1.printStackTrace();                }            }        }        return true;    }		/**	 * imputStream 返回out	 * @param inputStream	 * @return	 * @throws Exception	 */	public static boolean saveFileByInputStream(InputStream inputStream,			String filePath) {		File file = null;		file = new File(filePath);		if (!file.exists()) {			File file2 = new File(filePath.substring(0,					filePath.lastIndexOf("/") + 1));			file2.mkdirs();		}		FileOutputStream outputStream = null;		BufferedOutputStream bos = null;		BufferedInputStream bis = null;				try {			bis = new BufferedInputStream(inputStream);			outputStream = new FileOutputStream(file);			bos = new BufferedOutputStream(outputStream);			int byte_ =0 ;			while ((byte_ = bis.read()) != -1)				bos.write(byte_);		} catch (IOException e) {			e.printStackTrace();			return false;		} finally{			try {				bos.flush();				bos.close();				bis.close();			} catch (IOException e) {				e.printStackTrace();			}		}		return true;	}			/**	 * 根据url得到名称	 * @param url	 * @return	 */	public static String getFileName(String url) {		String fileName = "";		if (url != null) {			fileName = url.substring(url.lastIndexOf("/") + 1);		}		return fileName;	}		public static boolean renameFile(String path,String oldName,String newName){		try {			File file = null;			file = new File(path + "/" + oldName);			if (file.exists()) {				file.renameTo(new File(path + "/" + newName));			}		} catch (Exception e) {			e.printStackTrace();			return false;		}		return true;	}		/**	 * 辅助方法,删除文件	 * @param path	 * @param context	 * @param imageName	 */	private void delFile(String path, Context context,			String imageName) {		File file = null;		String real_path = "";		try {			if (hasSDCard()) {				real_path = (path != null && path.startsWith("/") ? path : "/"						+ path);			} else {				real_path = getPackagePath(context)						+ (path != null && path.startsWith("/") ? path : "/"								+ path);			}			file = new File(real_path, imageName);			if (file != null)				file.delete();		} catch (Exception e) {			e.printStackTrace();		}	}				/**	 * 根据路径和名称都可以	 * @param filePath	 * @return	 */	public static int getType(String filePath){  		if (filePath == null) {			return -1;		}		String end ;		if(filePath.contains("/")){			File file = new File(filePath);			if (!file.exists())				return -1;			/* 取得扩展名 */				end = file					.getName()					.substring(file.getName().lastIndexOf(".") + 1,							file.getName().length()).toLowerCase();		}else{			end = filePath.substring(filePath.lastIndexOf(".") + 1,					filePath.length()).toLowerCase();;		}				end = end.trim().toLowerCase();		if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")				|| end.equals("xmf") || end.equals("ogg") || end.equals("wav")				|| end.equals("amr")) {			return SOUND;		} else if (end.equals("3gp") || end.equals("mp4")) {			return MOVIE;		} else if (end.equals("jpg") || end.equals("gif") || end.equals("png")				|| end.equals("jpeg") || end.equals("bmp")) {			return IMG;		} else if (end.equals("apk")) {			return APK;		} else if (end.equals("ppt")) {			return PPT;		} else if (end.equals("xls")) {			return XLS;		} else if (end.equals("doc")) {			return DOC;		} else if (end.equals("pdf")) {			return PDF;		} else if (end.equals("chm")) {			return CHM;		} else if (end.equals("txt")) {			return TXT;		} else {			return -1;		}	} 				public static Intent openFile(String filePath) {		if (filePath == null) {			return null;		}		File file = new File(filePath);		if (!file.exists())			return null;		/* 取得扩展名 */		String end = file				.getName()				.substring(file.getName().lastIndexOf(".") + 1,						file.getName().length()).toLowerCase();		end = end.trim().toLowerCase();//		System.out.println(end);		/* 依扩展名的类型决定MimeType */		if (end.equals("m4a") || end.equals("mp3") || end.equals("mid")				|| end.equals("xmf") || end.equals("ogg") || end.equals("wav")				|| end.equals("amr")) {			return getAudioFileIntent(filePath);		} else if (end.equals("3gp") || end.equals("mp4")) {			return getAudioFileIntent(filePath);		} else if (end.equals("jpg") || end.equals("gif") || end.equals("png")				|| end.equals("jpeg") || end.equals("bmp")) {			return getImageFileIntent(filePath);		} else if (end.equals("apk")) {			return getApkFileIntent(filePath);		} else if (end.equals("ppt")) {			return getPptFileIntent(filePath);		} else if (end.equals("xls")) {			return getExcelFileIntent(filePath);		} else if (end.equals("doc")) {			return getWordFileIntent(filePath);		} else if (end.equals("pdf")) {			return getPdfFileIntent(filePath);		} else if (end.equals("chm")) {			return getChmFileIntent(filePath);		} else if (end.equals("txt")) {			return getTextFileIntent(filePath, false);		} else {			return getAllIntent(filePath);		}	}	// Android获取一个用于打开APK文件的intent	public static Intent getAllIntent(String param) {		Intent intent = new Intent();		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		intent.setAction(android.content.Intent.ACTION_VIEW);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "*/*");		return intent;	}	// Android获取一个用于打开APK文件的intent	public static Intent getApkFileIntent(String param) {		Intent intent = new Intent();		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		intent.setAction(android.content.Intent.ACTION_VIEW);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/vnd.android.package-archive");		return intent;	}	// Android获取一个用于打开VIDEO文件的intent	public static Intent getVideoFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);		intent.putExtra("oneshot", 0);		intent.putExtra("configchange", 0);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "video/*");		return intent;	}	// Android获取一个用于打开AUDIO文件的intent	public static Intent getAudioFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);		intent.putExtra("oneshot", 0);		intent.putExtra("configchange", 0);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "audio/*");		return intent;	}	// Android获取一个用于打开Html文件的intent	public static Intent getHtmlFileIntent(String param) {		Uri uri = Uri.parse(param).buildUpon()				.encodedAuthority("com.android.htmlfileprovider")				.scheme("content").encodedPath(param).build();		Intent intent = new Intent("android.intent.action.VIEW");		intent.setDataAndType(uri, "text/html");		return intent;	}	// Android获取一个用于打开图片文件的intent	public static Intent getImageFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "image/*");		return intent;	}	// Android获取一个用于打开PPT文件的intent	public static Intent getPptFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/vnd.ms-powerpoint");		return intent;	}	// Android获取一个用于打开Excel文件的intent	public static Intent getExcelFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/vnd.ms-excel");		return intent;	}	// Android获取一个用于打开Word文件的intent	public static Intent getWordFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/msword");		return intent;	}	// Android获取一个用于打开CHM文件的intent	public static Intent getChmFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/x-chm");		return intent;	}	// Android获取一个用于打开文本文件的intent	public static Intent getTextFileIntent(String param, boolean paramBoolean) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		if (paramBoolean) {			Uri uri1 = Uri.parse(param);			intent.setDataAndType(uri1, "text/plain");		} else {			Uri uri2 = Uri.fromFile(new File(param));			intent.setDataAndType(uri2, "text/plain");		}		return intent;	}	// Android获取一个用于打开PDF文件的intent	public static Intent getPdfFileIntent(String param) {		Intent intent = new Intent("android.intent.action.VIEW");		intent.addCategory("android.intent.category.DEFAULT");		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);		Uri uri = Uri.fromFile(new File(param));		intent.setDataAndType(uri, "application/pdf");		return intent;	}		/**	 * 判断是否有sdcard	 * 	 * @return	 */	public static boolean hasSDCard() {		boolean b = false;		if (Environment.MEDIA_MOUNTED.equals(Environment				.getExternalStorageState())) {			b = true;		}		return b;	}	/**	 * 得到sdcard路径	 * 	 * @return	 */	public static String getExtPath() {		String path = "";		if (hasSDCard()) {			path = Environment.getExternalStorageDirectory().getPath();		}		return path;	}	/**	 * 得到/data/data/com.d3studio.together目录	 * 	 * @param mActivity	 * @return	 */	public static String getPackagePath(Context mActivity) {		return mActivity.getFilesDir().toString();	}	/**	 * 根据url得到图片	 * 	 * @param url	 * @return	 */	public static String getImageName(String url) {		String imageName = "";		if (url != null) {			imageName = url.substring(url.lastIndexOf("/") + 1);		}		return imageName;	}	}


InputTools

public class InputTools {	// 隐藏虚拟键盘	public static void HideKeyboard(View v) {		InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);		if (imm.isActive()) {			imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);		}	}	// 显示虚拟键盘	public static void ShowKeyboard(View v) {		InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);		imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);	}	// 强制显示或者关闭系统键盘	public static void KeyBoard(final EditText txtSearchKey, final String status) {		Timer timer = new Timer();		timer.schedule(new TimerTask() {			@Override			public void run() {				InputMethodManager m = (InputMethodManager) txtSearchKey.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);				if (status.equals("open")) {					m.showSoftInput(txtSearchKey,InputMethodManager.SHOW_FORCED);				} else {					m.hideSoftInputFromWindow(txtSearchKey.getWindowToken(), 0);				}			}		}, 300);	}	// 通过定时器强制隐藏虚拟键盘	public static void TimerHideKeyboard(final View v) {		Timer timer = new Timer();		timer.schedule(new TimerTask() {			@Override			public void run() {				InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);				if (imm.isActive()) {					imm.hideSoftInputFromWindow(v.getApplicationWindowToken(),0);				}			}		}, 10);	}	// 输入法是否显示着	public static boolean KeyBoard(EditText edittext) {		boolean bool = false;		InputMethodManager imm = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);		if (imm.isActive()) {			bool = true;		}		return bool;	}}



  相关解决方案