24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > IOS开发

【常州安卓开发培训班】常用到的工具类整理

2018-04-17 12:43:15 东方博宜 阅读

2018年 ,新的一年满血复活,新年总要有点新的东西,作为一个程序员界的新晋司机,也是时候整理一些东西了,两三年的路走来,代码也是边写边忘、边走边丢,很多问题忙着忙着就忘了,决定写点随笔供自己闲余时间回望,有需要的读者也可以随意瞄几眼,哪里有错有问题可以提出来,虽然我不见得会改,O(∩_∩)O哈哈~


日常开发中很多东西都是写过无数遍的,我本人没有每次都去重新写的习惯(不知道有没有小伙伴会如此耿直??)那么整理好自己的工具类还是有必要的。这里就记录几个目前为止我使用较多的。


常用工具类


    /**

     * 根据手机的分辨率从 dp 的单位 转成为 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);

    }

            

    /**

     * Md5 32位 or 16位 加密

     *

     * @param plainText

     * @return 32位加密

     */

    public static String Md5(String plainText) {

        StringBuffer buf = null;        

            try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());            

            byte b[] = md.digest();            

            int i;

            buf = new StringBuffer("");            

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];                

            if (i < 0) i += 256;                

            if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }


        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();

        }        return buf.toString();

    } 

            

    /**

     * 手机号正则判断

     * @param str

     * @return

     * @throws PatternSyntaxException

     */

    public static boolean isPhoneNumber(String str) throws PatternSyntaxException {        

            if (str != null) {

        String pattern = "(13\\d|14[579]|15[^4\\D]|17[^49\\D]|18\\d)\\d{8}";


        Pattern r = Pattern.compile(pattern);

        Matcher m = r.matcher(str);            

            return m.matches();

        } else {            

            return false;

        }

    }

            

    /**

     * 检测当前网络的类型 是否是wifi

     *

     * @param context

     * @return

     */

    public static int checkedNetWorkType(Context context) {        

            if (!checkedNetWork(context)) {            

            return 0;//无网络

        }

        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        

            if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting()) {            

            return 1;//wifi

        } else {            

            return 2;//非wifi

        }

    }    

            

    /**

     * 检查是否连接网络

     *

     * @param context

     * @return

     */

    public static boolean checkedNetWork(Context context) {        

            // 获得连接设备管理器

        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        

            if (cm == null) return false;        /**

         * 获取网络连接对象

         */

        NetworkInfo networkInfo = cm.getActiveNetworkInfo();        

            if (networkInfo == null || !networkInfo.isAvailable()) {            

            return false;

        }        return true;

    }    

            

    /**

     * 检测GPS是否打开

     *

     * @return

     */

    public static boolean checkGPSIsOpen(Context context) {        

            boolean isOpen;

        LocationManager locationManager = (LocationManager) context

                .getSystemService(Context.LOCATION_SERVICE);        

            if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)||locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){

            isOpen=true;

        }else{

            isOpen = false;

        }        return isOpen;

    }    

            

    /**

     * 跳转GPS设置

     */

    public static void openGPSSettings(final Context context) {        

            if (checkGPSIsOpen(context)) {

            //            initLocation(); //自己写的定位方法

        } else {//            //没有打开则弹出对话框

            AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AlertDialogCustom);


            builder.setTitle("温馨提示");

            builder.setMessage("当前应用需要打开定位功能。请点击\"设置\"-\"定位服务\"打开定位功能。");            

            //设置对话框是可取消的

            builder.setCancelable(false);


            builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {                

            @Override

                public void onClick(DialogInterface dialogInterface, int i) {

                    dialogInterface.dismiss();                    //跳转GPS设置界面

                    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

                    context.startActivity(intent);

                }

            });

            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {                

            @Override

                public void onClick(DialogInterface dialogInterface, int i) {

                    dialogInterface.dismiss();

                    ActivityManager.getInstance().exit();

                }

            });

            AlertDialog alertDialog = builder.create();

            alertDialog.show();

        }

    }    

            

    /**

     * 字符串进行Base64编码

     * @param str

     */

    public static String StringToBase64(String str){

        String encodedString = Base64.encodeToString(str.getBytes(), Base64.DEFAULT);        

            return encodedString;

    }    

            

    /**

     * 字符串进行Base64解码

     * @param encodedString

     * @return

     */

    public static String Base64ToString(String encodedString){

        String decodedString =new String(Base64.decode(encodedString,Base64.DEFAULT));        

            return decodedString;

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12

 


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn