android常用工具类集合

本文集合本人在开发中经常用到的工具类(待续):
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


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiawj8957/article/details/52385051
文章标签: android 工具类 常用
上一篇wifi连接真机调试并adb操作
下一篇常用的日期时间操作工具
想对作者说点什么? 我来说一句

常用的common.jar文件

2017年08月08日 14.4MB 下载

MyAppUtils

2016年11月24日 21.06MB 下载

Android常用工具类集合

2016年09月02日 5.35MB 下载

android 常用工具类集合

2015年06月26日 131KB 下载

android工具类库

2018年01月19日 4.52MB 下载

没有更多推荐了,返回首页

关闭
关闭