編輯:關於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,
ArrayList value) {
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選項菜單用法。分享給大家供大家參考。具體如下:Android平台下所提供的菜單大體上可分為三類:選項菜單、上下文菜單和子菜單。當Activit
Android開發之圖形圖像與動畫(二)Animation實現圖像的漸變/縮放/位移/旋轉
Android 平台提供了兩類動畫。 一類是Tween動畫,就是對場景裡的對象不斷的進行圖像變化來產生動畫效果(旋轉、平移、放縮和漸變)。 下面就講一下Tweene An
Android觸摸及手勢操作GestureDetector
現在的智能手機不敢說百分百的都是觸摸屏,也應該是百分之九九以上為觸摸屏了,觸摸屏為我們操作無鍵盤、無鼠標的手機系統帶來了很多的便利。當用戶觸摸屏幕時會產生很多的觸摸事件,