Android开发-常用工具方法(dp转成px、网络是否可用、是否3G网络、Gps是否打开、判断手机号码等)
来源:互联网 发布:公司网络 迅雷赚钱宝 编辑:程序博客网 时间:2024/05/21 17:44
Android开发常用工具方法(CommonTools)
在发开Android应用过程中,我们往往添加一个Utils包放置一些帮助方法类(这也是很好的Android开发习惯),这样大大方便了开发时的调取操作、也使得软件维护、更新更为便捷,以下就是我常用的几个util类:有关于网络的、文件操作的等等!
public class CommonTools {/** * 短暂显示Toast消息 * * @param context * @param message */public static void showShortToast(Context context, String message) {LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = inflater.inflate(R.layout.custom_toast, null);TextView text = (TextView) view.findViewById(R.id.toast_message);text.setText(message);Toast toast = new Toast(context);toast.setDuration(Toast.LENGTH_SHORT);toast.setGravity(Gravity.BOTTOM, 0, 300);toast.setView(view);toast.show();}/** * 根据手机分辨率从dp转成px * * @param context * @param dpValue * @return */public static int dip2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);}/** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */public static int px2dip(Context context, float pxValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (pxValue / scale + 0.5f) - 15;}/** * 获取手机状态栏高度 * * @param context * @return */public static int getStatusBarHeight(Context context) {Class<?> c = null;Object obj = null;java.lang.reflect.Field field = null;int x = 0;int statusBarHeight = 0;try {c = Class.forName("com.android.internal.R$dimen");obj = c.newInstance();field = c.getField("status_bar_height");x = Integer.parseInt(field.get(obj).toString());statusBarHeight = context.getResources().getDimensionPixelSize(x);return statusBarHeight;} catch (Exception e) {e.printStackTrace();}return statusBarHeight;}/** * 判断手机号码*/public static boolean isMobileNO(String mobiles){Pattern pattern = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"); Matcher matcher = pattern.matcher(mobiles); return matcher.matches();}}
关于网络判断的类NetworkUtils
public class NetworkUtils {/** * 网络是否可用 * * @param activity * @return */public static boolean isNetworkAvailable(Context context) {ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (connectivity == null) {} else {NetworkInfo[] info = connectivity.getAllNetworkInfo();if (info != null) {for (int i = 0; i < info.length; i++) {if (info[i].getState() == NetworkInfo.State.CONNECTED) {return true;}}}}return false;}/** * 网络连接提示 * * @param context * @return */public static void networkStateTips(Context context) {if (!isNetworkAvailable(context)) {CommonTools.showShortToast(context, "网络故障,请先检查网络连接");}}/** * Gps是否打开 * * @param context * @return */public static boolean isGpsEnabled(Context context) {LocationManager locationManager = ((LocationManager) context.getSystemService(Context.LOCATION_SERVICE));List<String> accessibleProviders = locationManager.getProviders(true);return accessibleProviders != null && accessibleProviders.size() > 0;}/** * wifi是否打开 */public static boolean isWifiEnabled(Context context) {ConnectivityManager mgrConn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);TelephonyManager mgrTel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return ((mgrConn.getActiveNetworkInfo() != null && mgrConn.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);}/** * 判断当前网络是否是wifi网络 * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网 * * @param context * @return boolean */public static boolean isWifi(Context context) {ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();if (activeNetInfo != null&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {return true;}return false;}/** * 判断当前网络是否是3G网络 * * @param context * @return boolean */public static boolean is3G(Context context) {ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();if (activeNetInfo != null&& activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {return true;}return false;}}
文件操作类FileUtils
public class FileUtils { private final static String t = "FileUtils"; // Used to validate and display valid form names. public static final String VALID_FILENAME = "[ _\\-A-Za-z0-9]*.x[ht]*ml"; // Storage paths public static final String FORMS_PATH = Environment.getExternalStorageDirectory() + "/odk/forms/"; public static final String INSTANCES_PATH = Environment.getExternalStorageDirectory() + "/odk/instances/"; public static final String CACHE_PATH = Environment.getExternalStorageDirectory() + "/odk/.cache/"; public static final String TMPFILE_PATH = CACHE_PATH + "tmp.jpg"; public static ArrayList<String> getValidFormsAsArrayList(String path) { ArrayList<String> formPaths = new ArrayList<String>(); File dir = new File(path); if (!storageReady()) { return null; } if (!dir.exists()) { if (!createFolder(path)) { return null; } } File[] dirs = dir.listFiles(); for (int i = 0; i < dirs.length; i++) { // skip all the directories if (dirs[i].isDirectory()) continue; String formName = dirs[i].getName(); formPaths.add(dirs[i].getAbsolutePath()); } return formPaths; } public static ArrayList<String> getFoldersAsArrayList(String path) { ArrayList<String> mFolderList = new ArrayList<String>(); File root = new File(path); if (!storageReady()) { return null; } if (!root.exists()) { if (!createFolder(path)) { return null; } } if (root.isDirectory()) { File[] children = root.listFiles(); for (File child : children) { boolean directory = child.isDirectory(); if (directory) { mFolderList.add(child.getAbsolutePath()); } } } return mFolderList; } public static boolean deleteFolder(String path) { // not recursive if (path != null && storageReady()) { File dir = new File(path); if (dir.exists() && dir.isDirectory()) { File[] files = dir.listFiles(); for (File file : files) { if (!file.delete()) { Log.i(t, "Failed to delete " + file); } } } return dir.delete(); } else { return false; } } public static boolean createFolder(String path) { if (storageReady()) { boolean made = true; File dir = new File(path); if (!dir.exists()) { made = dir.mkdirs(); } return made; } else { return false; } } public static boolean deleteFile(String path) { if (storageReady()) { File f = new File(path); return f.delete(); } else { return false; } } public static byte[] getFileAsBytes(File file) { byte[] bytes = null; InputStream is = null; try { is = new FileInputStream(file); // Get the size of the file long length = file.length(); if (length > Integer.MAX_VALUE) { Log.e(t, "File " + file.getName() + "is too large"); return null; } // Create the byte array to hold the data bytes = new byte[(int) length]; // Read in the bytes int offset = 0; int read = 0; try { while (offset < bytes.length && read >= 0) { read = is.read(bytes, offset, bytes.length - offset); offset += read; } } catch (IOException e) { Log.e(t, "Cannot read " + file.getName()); e.printStackTrace(); return null; } // Ensure all the bytes have been read in if (offset < bytes.length) { try { throw new IOException("Could not completely read file " + file.getName()); } catch (IOException e) { e.printStackTrace(); return null; } } return bytes; } catch (FileNotFoundException e) { Log.e(t, "Cannot find " + file.getName()); e.printStackTrace(); return null; } finally { // Close the input stream try { is.close(); } catch (IOException e) { Log.e(t, "Cannot close input stream for " + file.getName()); e.printStackTrace(); return null; } } } public static boolean storageReady() { String cardstatus = Environment.getExternalStorageState(); if (cardstatus.equals(Environment.MEDIA_REMOVED) || cardstatus.equals(Environment.MEDIA_UNMOUNTABLE) || cardstatus.equals(Environment.MEDIA_UNMOUNTED) || cardstatus.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { return false; } else { return true; } } public static String getMd5Hash(File file) { try { // CTS (6/15/2010) : stream file through digest instead of handing it the byte[] MessageDigest md = MessageDigest.getInstance("MD5"); int chunkSize = 256; byte[] chunk = new byte[chunkSize]; // Get the size of the file long lLength = file.length(); if (lLength > Integer.MAX_VALUE) { Log.e(t, "File " + file.getName() + "is too large"); return null; } int length = (int) lLength; InputStream is = null; is = new FileInputStream(file); int l = 0; for (l = 0; l + chunkSize < length; l += chunkSize) { is.read(chunk, 0, chunkSize); md.update(chunk, 0, chunkSize); } int remaining = length - l; if (remaining > 0) { is.read(chunk, 0, remaining); md.update(chunk, 0, remaining); } byte[] messageDigest = md.digest(); BigInteger number = new BigInteger(1, messageDigest); String md5 = number.toString(16); while (md5.length() < 32) md5 = "0" + md5; is.close(); return md5; } catch (NoSuchAlgorithmException e) { Log.e("MD5", e.getMessage()); return null; } catch (FileNotFoundException e) { Log.e("No Cache File", e.getMessage()); return null; } catch (IOException e) { Log.e("Problem reading from file", e.getMessage()); return null; } }}
Written in the last:在这篇博客中我会慢慢总结我经常用到的util类,谢谢!
2014.2.16
8 0
- Android开发-常用工具方法(dp转成px、网络是否可用、是否3G网络、Gps是否打开、判断手机号码等)
- Android:3G网络是否可用
- Android判断是否连接网络或者是否打开了GPS
- Android判断网络连接是否可用,WiFi、移动数据是否打开等
- android判断网络是否可用方法
- Android判断网络是否可用的方法
- 判断是否连接网络,当前网络类型,Gps是否打开
- android 判断网络是否可用
- Android判断网络是否可用
- Android 判断网络是否可用
- 【Android】判断网络是否可用
- Android 判断网络是否可用
- Android 判断网络是否可用
- Android 判断网络是否可用
- Android判断网络是否可用
- android判断网络是否可用
- android判断网络是否可用
- android判断网络是否可用
- poj_3041
- 14年春面试前准备(二)
- ubuntu 12.04 独立显卡切换
- 启用SQL*Plus的AutoTrace功能
- BNU4062:0123456789
- Android开发-常用工具方法(dp转成px、网络是否可用、是否3G网络、Gps是否打开、判断手机号码等)
- Spring.Net AOP实例
- 如何让人际关系网助你一臂之力?
- 九度 1012 畅通工程
- 这样的子集最多有几个
- 提高IT项目沟通技巧
- BNU4078:距离判定(点到直线的距离)
- 解决Linux下SQL*Plus命令行历史回调功能
- 甲方在IT信息化中的项目管理