1、 加载动画圈实现
<ProgressBar android:id="@+id/main_head_progress" style="@style/loading_small" android:layout_toRightOf="@id/main_head_title" android:layout_centerVertical="true" android:layout_marginLeft="5.0dip" android:visibility="gone"/>
@style/loading_small
<item name="android:indeterminateDrawable">@anim/loading</item>
@anim/loading
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="100" android:drawable="@drawable/loading_0" />
<item android:duration="100" android:drawable="@drawable/loading_1" />
<item android:duration="100" android:drawable="@drawable/loading_2" />
<item android:duration="100" android:drawable="@drawable/loading_3" />
<item android:duration="100" android:drawable="@drawable/loading_4" />
<item android:duration="100" android:drawable="@drawable/loading_5" />
<item android:duration="100" android:drawable="@drawable/loading_6" />
<item android:duration="100" android:drawable="@drawable/loading_7" />
</animation-list>
显示:Progress.setVisibility(ProgressBar.VISIBLE);
消失:Progress.setVisibility(ProgressBar.GONE);
工具类StringUtil:
public class StringUtils { private final static Pattern emailer = Pattern.compile("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); //private final static SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //private final static SimpleDateFormat dateFormater2 = new SimpleDateFormat("yyyy-MM-dd"); 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"); } }; /** * 将字符串转位日期类型 * @param sdate sdate的样式:2013-09-23 17:10:35
* @return */ public static Date toDate(String sdate) { try { return dateFormater.get().parse(sdate); } catch (ParseException e) { return null; } } /** * 以友好的方式显示时间 * @param sdate * @return */ public static String friendly_time(String sdate) { Date time = toDate(sdate); 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 <= 10){ ftime = days+"天前"; } else if(days > 10){ ftime = dateFormater2.get().format(time); } return ftime; } /** * 判断给定字符串时间是否为今日 * @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; } /** * 判断给定字符串是否空白串。 * 空白串是指由空格、制表符、回车符、换行符组成的字符串 * 若输入字符串为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 != ' ' && c != ' ' && c != ' ' ) { 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(); } /** * 字符串转整数 * @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; } }