編輯:關於Android編程
Android開發的工具類能很好的封裝一些常用的操作,以後使用起來也非常方便,我把我經常使用的工具類分享給大家。
FileCache:
package com.pztuan.common.util; import java.io.File; import android.content.Context; public class FileCache { private File cacheDir; public FileCache(Context context) { // 判斷外存SD卡掛載狀態,如果掛載正常,創建SD卡緩存文件夾 if (android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED)) { cacheDir = new File( android.os.Environment.getExternalStorageDirectory(), PztCacheDir); } else { // SD卡掛載不正常,獲取本地緩存文件夾(應用包所在目錄) cacheDir = context.getCacheDir(); } if (!cacheDir.exists()) { cacheDir.mkdirs(); } } public File getFile(String url) { String fileName = String.valueOf(url.hashCode()); File file = new File(cacheDir, fileName); return file; } public void clear() { File[] files = cacheDir.listFiles(); for (File f : files) f.delete(); } public String getCacheSize() { long size = 0; if (cacheDir.exists()) { File[] files = cacheDir.listFiles(); for (File f : files) { size += f.length(); } } String cacheSize = String.valueOf(size / 1024 / 1024) + M; return cacheSize; } }
package com.pztuan.common.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.NetworkInfo.State; import android.net.wifi.WifiManager; import java.security.MessageDigest; /** * * @author suncat * @category 網絡工具 */ public class NetWorkUtil { private final static String[] hexDigits = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f }; public static final int STATE_DISCONNECT = 0; public static final int STATE_WIFI = 1; public static final int STATE_MOBILE = 2; public static String concatUrlParams() { return null; } public static String encodeUrl() { return null; } public static boolean isNetWorkConnected(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] nis = cm.getAllNetworkInfo(); if (nis != null) { for (NetworkInfo ni : nis) { if (ni != null) { if (ni.isConnected()) { return true; } } } } return false; } public static boolean isWifiConnected(Context context) { WifiManager wifiMgr = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); boolean isWifiEnable = wifiMgr.isWifiEnabled(); return isWifiEnable; } public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if (networkInfo != null) { return networkInfo.isAvailable(); } return false; } private static String byteArrayToHexString(byte[] b) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) { resultSb.append(byteToHexString(b[i])); } return resultSb.toString(); } private static String byteToHexString(byte b) { int n = b; if (n < 0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexDigits[d1] + hexDigits[d2]; } public static String md5Encode(String origin) { String resultString = null; try { resultString = new String(origin); MessageDigest md = MessageDigest.getInstance(MD5); resultString = new String(md.digest(resultString.getBytes())); } catch (Exception ex) { ex.printStackTrace(); } return resultString; } public static String md5EncodeToHexString(String origin) { String resultString = null; try { resultString = new String(origin); MessageDigest md = MessageDigest.getInstance(MD5); resultString = byteArrayToHexString(md.digest(resultString .getBytes())); } catch (Exception ex) { ex.printStackTrace(); } return resultString; } public static int getNetworkState(Context context) { ConnectivityManager connManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); // Wifi State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI) .getState(); if (state == State.CONNECTED || state == State.CONNECTING) { return STATE_WIFI; } // 3G state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) .getState(); if (state == State.CONNECTED || state == State.CONNECTING) { return STATE_MOBILE; } return STATE_DISCONNECT; } }
package com.pztuan.common.util; import java.security.MessageDigest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.annotation.SuppressLint; import android.content.Context; import android.os.Environment; import android.telephony.TelephonyManager; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast; @SuppressLint(DefaultLocale) public class Tools { private final static String[] hexDigits = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f }; public static String byteArrayToHexString(byte[] b) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) { resultSb.append(byteToHexString(b[i])); } return resultSb.toString(); } private static String byteToHexString(byte b) { int n = b; if (n < 0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexDigits[d1] + hexDigits[d2]; } /** * md5 加密 * * @param origin * @return */ public static String md5Encode(String origin) { String resultString = null; try { resultString = new String(origin); MessageDigest md = MessageDigest.getInstance(MD5); resultString = byteArrayToHexString(md.digest(resultString .getBytes())); } catch (Exception ex) { ex.printStackTrace(); } return resultString; } /** * 手機號碼格式匹配 * * @param mobiles * @return */ public static boolean isMobileNO(String mobiles) { Pattern p = Pattern .compile(^((13[0-9])|(15[^4,\D])|(18[0,1,3,5-9]))\d{8}$); Matcher m = p.matcher(mobiles); System.out.println(m.matches() + -telnum-); return m.matches(); } /** * 是否含有指定字符 * * @param expression * @param text * @return */ private static boolean matchingText(String expression, String text) { Pattern p = Pattern.compile(expression); Matcher m = p.matcher(text); boolean b = m.matches(); return b; } /** * 郵政編碼 * * @param zipcode * @return */ public static boolean isZipcode(String zipcode) { Pattern p = Pattern.compile([0-9]\d{5}); Matcher m = p.matcher(zipcode); System.out.println(m.matches() + -zipcode-); return m.matches(); } /** * 郵件格式 * * @param email * @return */ public static boolean isValidEmail(String email) { Pattern p = Pattern .compile(^([a-z0-9A-Z]+[-|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$); Matcher m = p.matcher(email); System.out.println(m.matches() + -email-); return m.matches(); } /** * 固話號碼格式 * * @param telfix * @return */ public static boolean isTelfix(String telfix) { Pattern p = Pattern.compile(d{3}-d{8}|d{4}-d{7}); Matcher m = p.matcher(telfix); System.out.println(m.matches() + -telfix-); return m.matches(); } /** * 用戶名匹配 * * @param name * @return */ public static boolean isCorrectUserName(String name) { Pattern p = Pattern.compile(([A-Za-z0-9]){2,10}); Matcher m = p.matcher(name); System.out.println(m.matches() + -name-); return m.matches(); } /** * 密碼匹配,以字母開頭,長度 在6-18之間,只能包含字符、數字和下劃線。 * * @param pwd * @return * */ public static boolean isCorrectUserPwd(String pwd) { Pattern p = Pattern.compile(\w{6,18}); Matcher m = p.matcher(pwd); System.out.println(m.matches() + -pwd-); return m.matches(); } /** * 檢查是否存在SDCard * * @return */ public static boolean hasSdcard() { String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } /** * 計算剩余日期 * * @param remainTime * @return */ public static String calculationRemainTime(String endTime, long countDown) { SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); try { Date now = new Date(System.currentTimeMillis());// 獲取當前時間 Date endData = df.parse(endTime); long l = endData.getTime() - countDown - now.getTime(); long day = l / (24 * 60 * 60 * 1000); long hour = (l / (60 * 60 * 1000) - day * 24); long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); return 剩余 + day + 天 + hour + 小時 + min + 分 + s + 秒; } catch (ParseException e) { e.printStackTrace(); } return ; } public static void showLongToast(Context act, String pMsg) { Toast toast = Toast.makeText(act, pMsg, Toast.LENGTH_LONG); toast.show(); } public static void showShortToast(Context act, String pMsg) { Toast toast = Toast.makeText(act, pMsg, Toast.LENGTH_SHORT); toast.show(); } /** * 獲取手機Imei號 * * @param context * @return */ public static String getImeiCode(Context context) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return tm.getDeviceId(); } /** * @author sunglasses * @param listView * @category 計算listview的高度 */ public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); } }
SharedPreferencesUtil:
package com.pztuan.db; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.util.Log; import java.util.ArrayList; import java.util.Set; public class SharedPreferencesUtil { private static final String TAG = PZTuan.SharePreferencesUtil; private static final String SHAREDPREFERENCE_NAME = sharedpreferences_pztuan; private static SharedPreferencesUtil mInstance; private static SharedPreferences mSharedPreferences; private static SharedPreferences.Editor mEditor; public synchronized static SharedPreferencesUtil getInstance(Context context) { if (mInstance == null) { mInstance = new SharedPreferencesUtil(context); } return mInstance; } private SharedPreferencesUtil(Context context) { mSharedPreferences = context.getSharedPreferences( SHAREDPREFERENCE_NAME, Context.MODE_PRIVATE); mEditor = mSharedPreferences.edit(); } public synchronized boolean putString(String key, String value) { mEditor.putString(key, value); return mEditor.commit(); } public synchronized boolean putStringArrayList(String key, ArrayListvalue) { for (int j = 0; j < value.size() - 1; j++) { if (value.get(value.size() - 1).equals(value.get(j))) { value.remove(j); } } mEditor.putInt(citySize, value.size()); if (value.size() == 4) { mEditor.putString(key + 0, value.get(3)); mEditor.putString(key + 1, value.get(0)); mEditor.putString(key + 2, value.get(1)); } else if (value.size() == 3) { mEditor.putString(key + 0, value.get(2)); mEditor.putString(key + 1, value.get(0)); mEditor.putString(key + 2, value.get(1)); } else { for (int i = 0; i < value.size(); i++) { mEditor.putString(key + i, value.get(value.size() - 1 - i)); } } return mEditor.commit(); } public synchronized boolean putInt(String key, int value) { mEditor.putInt(key, value); return mEditor.commit(); } public synchronized boolean putLong(String key, long value) { mEditor.putLong(key, value); return mEditor.commit(); } public synchronized boolean putFloat(String key, float value) { mEditor.putFloat(key, value); return mEditor.commit(); } public synchronized boolean putBoolean(String key, boolean value) { mEditor.putBoolean(key, value); return mEditor.commit(); } public synchronized boolean putStringSet(String key, Set value) { mEditor.putStringSet(key, value); return mEditor.commit(); } public String getString(String key, String value) { return mSharedPreferences.getString(key, value); } public ArrayList getStringArrayList(String key, int size) { ArrayList al = new ArrayList (); int loop; if (size > 4) loop = 4; else loop = size; for (int i = 0; i < loop; i++) { String name = mSharedPreferences.getString(key + i, null); al.add(name); } return al; } public int getInt(String key, int value) { return mSharedPreferences.getInt(key, value); } public long getLong(String key, long value) { return mSharedPreferences.getLong(key, value); } public float getFloat(String key, float value) { return mSharedPreferences.getFloat(key, value); } public boolean getBoolean(String key, boolean value) { return mSharedPreferences.getBoolean(key, value); } public Set getStringSet(String key, Set value) { return mSharedPreferences.getStringSet(key, value); } public boolean remove(String key) { mEditor.remove(key); return mEditor.commit(); } private static final String PREFERENCES_AUTO_LOGIN = yyUserAutoLogin; private static final String PREFERENCES_USER_NAME = yyUserName; private static final String PREFERENCES_USER_PASSWORD = yyUserPassword; public boolean isAutoLogin() { return mSharedPreferences.getBoolean(PREFERENCES_AUTO_LOGIN, false); } public String getUserName() { return mSharedPreferences.getString(PREFERENCES_USER_NAME, ); } public String getUserPwd() { return mSharedPreferences.getString(PREFERENCES_USER_PASSWORD, ); } public void saveLoginInfo(Boolean autoLogin, String userName, String userPassword) { assert (mEditor != null); mEditor.putBoolean(PREFERENCES_AUTO_LOGIN, autoLogin); mEditor.putString(PREFERENCES_USER_NAME, userName); mEditor.putString(PREFERENCES_USER_PASSWORD, userPassword); mEditor.commit(); } public void saveLoginPassword(String userPassword) { mEditor.putString(PREFERENCES_USER_PASSWORD, userPassword); mEditor.commit(); } public void saveLoginUserid(String userid) { mEditor.putString(userid, userid); mEditor.commit(); } public void clearUserInfo() { assert (mEditor != null); mEditor.putBoolean(PREFERENCES_AUTO_LOGIN, false); mEditor.putString(PREFERENCES_USER_NAME, ); mEditor.putString(PREFERENCES_USER_PASSWORD, ); mEditor.putString(userid, ); mEditor.commit(); } }
微信聊天時,突然發現自己的很多好友頭像都是透明的,感覺好高大上的樣子,微信透明頭像怎麼制作?下面小編就來告訴大家,感興趣的童鞋一起來看看吧!【微信透明頭像制
本文實例講述了Android選項菜單用法。分享給大家供大家參考。具體如下:Android平台下所提供的菜單大體上可分為三類:選項菜單、上下文菜單和子菜單。當Activit
Android 平台提供了兩類動畫。 一類是Tween動畫,就是對場景裡的對象不斷的進行圖像變化來產生動畫效果(旋轉、平移、放縮和漸變)。 下面就講一下Tweene An
現在的智能手機不敢說百分百的都是觸摸屏,也應該是百分之九九以上為觸摸屏了,觸摸屏為我們操作無鍵盤、無鼠標的手機系統帶來了很多的便利。當用戶觸摸屏幕時會產生很多的觸摸事件,