android常用工具类集合

原创 2016年08月31日 14:50:05

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

android常用工具类 --事件

public class DisplayTime { public static String getBriefTime(Date time) { Calendar calendarStand...

android 常用工具类

  • 2015年12月14日 21:30
  • 43KB
  • 下载

Android常用工具类

  • 2017年07月06日 16:53
  • 35KB
  • 下载

Android 常用工具类源码大全

原文地址:点击打开链接主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java。 目前包括HttpUtils、DownloadManagerPro、ShellUtils、Package...

android开发常用工具类集锦

  • 2015年10月25日 13:41
  • 28KB
  • 下载

基于Android系统Api封装常用工具类

  • 2016年06月30日 00:47
  • 164KB
  • 下载

(转)Android开发常用工具类

原地址:http://blog.csdn.net/axi295309066/article/details/52884973 不管是前端,后端,还是我们的Android开发,实际工作...
  • duyiqun
  • duyiqun
  • 2017年03月29日 19:56
  • 96

Android常用工具类

  • 2016年06月10日 14:09
  • 25KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android常用工具类集合
举报原因:
原因补充:

(最多只允许输入30个字)