本文集合本人在开发中经常用到的工具类(待续):
1、获取系统日期时间
更详细的使用详见:[日期时间操作类工具]http://blog.csdn.net/xiawj8957/article/details/52385628
2、日期格式字符串转换成时
public static String date2TimeStamp(String date_str) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
return String.valueOf(sdf.parse(date_str).getTime() / 1000);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
3、检查网络是否可用
public static boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (mConnectivityManager != null) {
// 获取网络连接管理的对象
NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
// 判断当前网络是否已经连接
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
4、将String类型的数组转化为逗号间隔字符串形式
public static String stringArrayToString(String[] stringArray) {
if (stringArray == null || stringArray.length <= 0) {
return null;
}
return Arrays.toString(stringArray).replaceAll("^\\[| |\\]$", "");
}
5、最省内存方式读取图片资源
public static Bitmap readBitMap(Context context, int resId) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
// 获取资源图片
InputStream is = context.getResources().openRawResource(resId);
return BitmapFactory.decodeStream(is, null, opt);
}
6、判断字符串是否为空
public class AppsCommonUtil {
public static boolean stringIsEmpty(String string) {
if (string == null) {
return true;
}
if (string.trim().equals("") || string.trim().equals("null")) {
return true;
}
return false;
}
7、判断字符串是否为数字
public static boolean isNumeric1(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
8、判断是否是正确的邮箱格式
public static boolean matchEmail(String email) {
// String strPattern =
// "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
String strPattern = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]*@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(email);
return m.matches();
}
9、判断是否是手机格式
public static boolean matchPhone(String phone) {
boolean isValid = false;
// String expression =
// "((^(13|15|18)[0-9]{9}$)|(^0[1,2]{1}\\d{1}-?\\d{8}$)|(^0[3-9] {1}\\d{2}-?\\d{7,8}$)|(^0[1,2]{1}\\d{1}-?\\d{8}-(\\d{1,4})$)|(^0[3-9]{1}\\d{2}-? \\d{7,8}-(\\d{1,4})$))";
String expression = "((^(10|11|12|13|14|15|16|17|18|19)[0-9]{9}$)|(^0[1,2]{1}\\d{1}-?\\d{8}$)|(^0[3-9] {1}\\d{2}-?\\d{7,8}$)|(^0[1,2]{1}\\d{1}-?\\d{8}-(\\d{1,4})$)|(^0[3-9]{1}\\d{2}-? \\d{7,8}-(\\d{1,4})$))";
CharSequence inputStr = phone;
Pattern pattern = Pattern.compile(expression);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}
10、隐藏软键盘
public static void hideKeyboard(Context context, IBinder binder) {
InputMethodManager imm = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(binder, 0);
}
11、android中px、dp、sp等转换
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / fontScale + 0.5f);
}
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
public static float applyDimension(Context context,int unit, float value) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f / 72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f / 25.4f);
}
return 0;
}
12、全局Toast
private static Toast toast;
@SuppressLint("ShowToast")
private static void getToast(Context context) {
if (toast == null) {
toast = new Toast(context);
}
if (view == null) {
view = Toast.makeText(context, "", Toast.LENGTH_SHORT).getView();
}
toast.setView(view);
}
//全局Toast
public static void showToast(Context context, CharSequence msg,
int duration) {
try {
getToast(context);
toast.setText(msg);
toast.setDuration(duration);
toast.show();
} catch (Exception e) {
Log.d("xwj", e.getMessage());
}
}
自定义Toast
private static Toast toast;
public static void showCustomerToast(final Context c, String msg, int duration) {
//获取LayoutInflater对象,该对象可以将布局文件转换成与之一致的view对象
LayoutInflater inflater = LayoutInflater.from(c);
//将布局文件转换成相应的View对象
View layout = inflater.inflate(R.layout.activity_flaut_notify, null);
//从layout中按照id查找TextView对象
TextView textView = (TextView) layout.findViewById(R.id.tip_notify);
//实例化一个Toast对象
if(null==toast) {
//设置TextView的text内容
textView.setText(msg);
toast = new Toast(c.getApplicationContext());
toast.setDuration(duration);
toast.setGravity(Gravity.BOTTOM, 0, 360);
toast.setView(layout);
toast.show();
}else{
//设置TextView的text内容
textView.setText(msg);
toast.setDuration(duration);
toast.setGravity(Gravity.BOTTOM, 0, 360);
toast.setView(layout);
toast.show();
}
}
13、获取android系统版本号
public static int getSDKVersionNumber() {
int sdkVersion;
try {
sdkVersion = Integer.valueOf(android.os.Build.VERSION.SDK_INT);
} catch (NumberFormatException e) {
sdkVersion = 0;
}
return sdkVersion;
}
14、获取图片所在文件夹
public static String getDir(String path) {
String subString = path.substring(0, path.lastIndexOf('/'));
return subString.substring(subString.lastIndexOf('/') + 1,
subString.length());
}
15、判断GPS是否可用
public static boolean isUseableGps(Context mcon) {
LocationManager alm = (LocationManager) mcon
.getSystemService(Context.LOCATION_SERVICE);
if (alm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.d("xwj", "GPS可用");
return true;
} else {
Log.d("xwj", "GPS不可用");
return false;
}
}
16、获取程序版本号
public static String getVersionName(Context mcon) {
// 获取packagemanager的实例
PackageManager packageManager = mcon.getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
try {
PackageInfo packInfo = null;
packInfo = packageManager.getPackageInfo(mcon.getPackageName(), 0);
String version = packInfo.versionName;
Log.d("xwj", "版本号:" + version);
return version;
} catch (NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
17、获取网速
private static boolean isFastMobileNetwork(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
switch (telephonyManager.getNetworkType()) {
case TelephonyManager.NETWORK_TYPE_1xRTT:
return false; // ~ 50-100 kbps
case TelephonyManager.NETWORK_TYPE_CDMA:
return false; // ~ 14-64 kbps
case TelephonyManager.NETWORK_TYPE_EDGE:
return false; // ~ 50-100 kbps
case TelephonyManager.NETWORK_TYPE_EVDO_0:
return true; // ~ 400-1000 kbps
case TelephonyManager.NETWORK_TYPE_EVDO_A:
return true; // ~ 600-1400 kbps
case TelephonyManager.NETWORK_TYPE_GPRS:
return false; // ~ 100 kbps
case TelephonyManager.NETWORK_TYPE_HSDPA:
return true; // ~ 2-14 Mbps
case TelephonyManager.NETWORK_TYPE_HSPA:
return true; // ~ 700-1700 kbps
case TelephonyManager.NETWORK_TYPE_HSUPA:
return true; // ~ 1-23 Mbps
case TelephonyManager.NETWORK_TYPE_UMTS:
return true; // ~ 400-7000 kbps
case TelephonyManager.NETWORK_TYPE_EHRPD:
return true; // ~ 1-2 Mbps
case TelephonyManager.NETWORK_TYPE_EVDO_B:
return true; // ~ 5 Mbps
case TelephonyManager.NETWORK_TYPE_HSPAP:
return true; // ~ 10-20 Mbps
case TelephonyManager.NETWORK_TYPE_IDEN:
return false; // ~25 kbps
case TelephonyManager.NETWORK_TYPE_LTE:
return true; // ~ 10+ Mbps
case TelephonyManager.NETWORK_TYPE_UNKNOWN:
return false;
default:
return false;
}
}
18、图片下载显示工具类
详见:http://blog.csdn.net/xiawj8957/article/details/52385772