Android|Java 開發常用工具類整理
如題 該文章展示的是我開發過程中使用的部分常用工具類方法,不定期更新。
歡迎各位大牛批評指教,如有發現錯誤,歡迎留言指教,如有更好的實現方式,也歡迎留言交流學習,謝謝。
package com.kevin.test.utils;/** * 字串格式匹配工具類 匹配手機號、有線電話號、郵箱等 * * @author blj * */public class FormatCheckUtils{/** * 判斷是否符合郵箱格式 */public static boolean checkEmailValid(String strEmail){if (null == strEmail){return false;}return strEmail.matches([a-zA-Z0-9_]+@[a-z0-9]+(.[a-z]+){2});}/** * 判斷是否符合有線電話號格式 * * @param phoneNumber * @return */public static boolean checkPhoneNumberValid(String phoneNumber){if (null == phoneNumber){return false;}/** * 匹配北京上海等3-8格式:(^0[1,2]{1}\d{1}-?\d{8} * 匹配其他省份等4-7/8格式:(^0[3-9]{1}\d{2}-?\d{7,8}) * 匹配內部電話轉接號:(-(\d{1,4}))?$) */// 區號與有線電話號之間可不添加“-” 外部號碼與內部號碼之間必須添加“-”String check = ((^0[1,2]{1}\d{1}-?\d{8}|(^0[3-9]{1}\d{2}-?\d{7,8}))(-(\d{1,4}))?$);return phoneNumber.matches(check);}/** * 驗證手機號方法 * * @param strPhoneNum * @return */public static boolean checkMobileNumberValid(String strPhoneNum){if (null == strPhoneNum){return false;}/** * 匹配13、15、18開頭手機號 排除154 開頭手機號 * 匹配170、176、177、178開頭手機號 * 匹配規則參考當前(2015-04-29)百度百科“手機號”羅列號碼 */String checkphone = ^(((13|18)[0-9])|(15[^4,\D])|170|176|177|178)\d{8}$;return strPhoneNum.matches(checkphone);}}
二 、Android Toast 工具類 打Toast 比較麻煩 抽取封裝了一下 傳值只傳Context String 或 Context StringID即可。
import android.content.Context;import android.widget.Toast;/** * Toast 工具類 * * @author blj * */public class ToastUtils{/** * 短提示 by resId * * @param context * @param resId */public static void shortShowResId(Context context, int resId){Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();}/** * 長提示 by resId * * @param context * @param resId */public static void longShowResId(Context context, int resId){Toast.makeText(context, resId, Toast.LENGTH_LONG).show();}/** * 短提示 by String * * @param context * @param string */public static void shortShowStr(Context context, String string){Toast.makeText(context, string, Toast.LENGTH_SHORT).show();}/** * 常提示 by String * * @param context * @param string */public static void longShowStr(Context context, String string){Toast.makeText(context, string, Toast.LENGTH_LONG).show();}}
三、Android 剪下粘貼工具類
import android.annotation.SuppressLint;import android.content.ClipboardManager;import android.content.Context;public class ClipBoardUtil {/** * 實現文本複製功能 * * @param content */@SuppressLint(NewApi)public static void copy(Context context, String content) {// 得到剪貼簿管理器ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);cmb.setText(content.trim());}/** * 實現粘貼功能 * * @param context * @return */@SuppressLint(NewApi)public static String paste(Context context) {// 得到剪貼簿管理器ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);return cmb.getText().toString().trim();}}
四、Android dp、px 轉換工具類
import android.content.Context;/** * dp與px轉換工具 * */public class DensityUtil{/** * 根據手機的解析度從 dip 的單位 轉成為 px(像素) */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);}public static int getPXFromString(Context context, String value){String lowerValue = value.toLowerCase();if (lowerValue.endsWith(px)){return Integer.parseInt(lowerValue.substring(0, lowerValue.indexOf(px)));}else if (lowerValue.endsWith(dp) || lowerValue.endsWith(dip)){return dip2px(context, Integer.parseInt(lowerValue.substring(0, lowerValue.indexOf(d))));}else if (lowerValue.matches(\d+)) {return Integer.parseInt(lowerValue);}else{throw new RuntimeException(轉換字串不合法);}}}