Android 开发实用方法大全

1.格式化价格,这个经常在计算费用精度的时候用到

    /**
     * 格式化价格
     *
     * @param argStr 传入价格字符串
     * @return
     */
    public static String getFloatDotStr(String argStr) {
        float arg = Float.valueOf(argStr);
        DecimalFormat fnum = new DecimalFormat("##0.00");
        return fnum.format(arg);
    }

2.获取App的版本号Version

    // 得到versionCode
    public static int getVerCode(Context context) {
        int verCode = 0;
        try {
            verCode = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        return verCode;
    }

3.获取手机屏幕宽高:

    /**
     * 屏幕宽高
     *
     * @param context
     * @return 0:width,1:height
     */
    public static int[] ScreenSize(Context context) {
        DisplayMetrics metrics = new DisplayMetrics();
        ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(metrics);
        return new int[] { metrics.widthPixels, metrics.heightPixels };
    }

4.判断SD卡是否存在:

    /**
     * 判断sd卡是否存在
     *
     * @author
     * @return
     */
    public static boolean judgeSDCard() {
        String status = Environment.getExternalStorageState();
        return status.equals(Environment.MEDIA_MOUNTED);
    }

5.验证是否中文:

    /***
     * 验证是否中文
     *
     * @param
     * @return
     */
    public static boolean validName(String name) {
        String pattern = "[\u4e00-\u9fa5]";
        if (isNull(name))
            return false;
        return name.matches(pattern);
    }

6.验证身份证号码:

    /**
     * 验证身份证号码
     *
     * @author
     * @param idCard
     * @return
     */
    public static boolean validateIdCard(String idCard) {
        if (isNull(idCard))
            return false;
        String pattern = "^[0-9]{17}[0-9|xX]{1}$";
        return idCard.matches(pattern);
    }

7.验证手机号码:

    /**
     * 验证手机号码
     *
     * @author
     * @param phone
     * @return
     */
    public static boolean validatePhone(String phone) {
        if (isNull(phone))
            return false;
        String pattern = "^1[3,4,5,6,8]\\d{9}$";
        return phone.matches(pattern);
    }

8.验证邮编:

    /**
     * 判断邮编
     *
     * @param
     * @return
     */
    public static boolean isZipNO(String zipString) {
        String str = "^[1-9][0-9]{5}$";
        return Pattern.compile(str).matcher(zipString).matches();
    }

9.验证银行卡号:

/**
     * 验证银行卡号
     *
     * @param bankCard
     *            信用卡是16位,其他的是13-19位
     * @return
     */
    public static boolean validateBankCard(String bankCard) {
        if (isNull(bankCard))
            return false;
        String pattern = "^\\d{13,19}$";
        return bankCard.matches(pattern);
    }

10.验证邮箱:

/**
     * 验证邮箱
     *
     * @author
     * @param email
     * @return
     */
    public static boolean validateEmail(String email) {
        if (isNull(email))
            return false;
        String pattern = "^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$";
        return email.matches(pattern);
    }

11.将图片设置为圆角图片:

    /**
     * 设置圆角的图片
     *
     * @author
     * @param bitmap
     *            图片
     * @param pixels
     *            角度
     * @return
     */
    public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
        try {
            if (bitmap != null) {
                Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
                Canvas canvas = new Canvas(output);

                final int color = 0xff424242;
                final Paint paint = new Paint();
                final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
                final RectF rectF = new RectF(rect);
                final float roundPx = pixels;

                paint.setAntiAlias(true);
                canvas.drawARGB(0, 0, 0, 0);
                paint.setColor(color);
                canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

                paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
                canvas.drawBitmap(bitmap, rect, rect, paint);

                return output;
            }
        } catch (Exception e) {
        }

        return bitmap;
    }

    /**
     * 将图片转换为圆形的
     *
     * @author
     * @param bitmap
     * @return
     */
    public static Bitmap toRoundBitmap(Bitmap bitmap) {
        if (bitmap != null) {
            bitmap = cutSquareBitmap(bitmap);
            return toRoundCorner(bitmap, bitmap.getWidth() / 2);
        }
        return bitmap;
    }

12.判断有无网络链接

// 判断有无网络链接
    public static boolean checkNetworkInfo(Context mContext) {
        ConnectivityManager conMan = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        if (mobile == State.CONNECTED || mobile == State.CONNECTING)
            return true;
        if (wifi == State.CONNECTED || wifi == State.CONNECTING)
            return true;
        return false;
    }

13.判断是否连接wifi

    /**
     * 判断是否连接wifi
     *
     * @param mContext
     * @return 返回true则有wifi
     */
    private static boolean isWifi(Context mContext) {
        ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
        if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
            return true;
        }
        return false;
    }

14.获取SIM卡存在的状态 

/** 获取SIM卡存在的状态 */
    public static String getSIMCardExist(Context context) {
        manager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
        String state = "";
        switch (manager.getSimState()) {
        case TelephonyManager.SIM_STATE_READY:
            state = "良好";
            break;
        case TelephonyManager.SIM_STATE_ABSENT:
            state = "无SIM卡";
            break;
        default:
            state = "SIM卡被锁定或未知状态";
            break;
        }
        return state;
    }

15. bitmap和base64类型互转

// 把bitmap转换成base64
    public static String getBase64FromBitmap(Bitmap bitmap, int bitmapQuality) {
        ByteArrayOutputStream bStream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.JPEG, bitmapQuality, bStream);
        byte[] bytes = bStream.toByteArray();
        return Base64.encode(bytes);
    }

    // 把base64转换成bitmap
    public static Bitmap getBitmapFromBase64(String string) {
        byte[] bitmapArray = null;
        try {
            bitmapArray = Base64.decode(string);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);
    }

16. 把图片流转换成byte数组

/**
     *
     * 方法说明 把图片流转换成byte数组
     *
     * @author
     * @param
     * @return
     */
    public static byte[] getByteFromStream(InputStream inStream) {
        byte[] data = new byte[1024];
        byte[] buffer = new byte[1024];
        int len = -1;
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        try {
            while ((len = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            data = outStream.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                outStream.close();
                inStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return data;
    }

17.把字节数组转化成bitmap

/**
     *
     * 把字节数组转化成bitmap
     *
     * @author
     * @param
     * @return
     */
    public static Bitmap getBitmapFromBytes(byte[] bytes, BitmapFactory.Options opts) {
        if (bytes != null)
            if (opts != null)
                return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts);
            else
                return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
        return null;
    }

18.把Stream转换成String

// 把Stream转换成String
    public static String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;

        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line + "/n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }

19.防止按钮连续点击

/**
     * 防止按钮连续点击
     */
    private static long lastClickTime;

    public static boolean isFastDoubleClick() {
        long time = System.currentTimeMillis();
        long timeD = time - lastClickTime;
        if (0 < timeD && timeD < 500) {
            return true;
        }
        lastClickTime = time;
        return false;
    }

20.保存图片到SD卡

/**
     * 保存图片
     *
     * @param photoBitmap
     * @param path 保存路径
     */
    public static void savePhotoToSDCard(Bitmap photoBitmap, String path) {

        File photoFile = new File(path);
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(photoFile);
            if (photoBitmap != null) {
                if (photoBitmap.compress(Bitmap.CompressFormat.JPEG, 70, fileOutputStream)) {
                    fileOutputStream.flush();
                }
            }
        } catch (FileNotFoundException e) {
            photoFile.delete();
            e.printStackTrace();
        } catch (IOException e) {
            photoFile.delete();
            e.printStackTrace();
        } finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

21.将字符串转化为二维码:

private static int QR_WIDTH = 300;
    private static int QR_HEIGHT = 300;

    public static Bitmap createQRImage(String url) {
        try {
            // 判断URL合法性
            if (url == null || "".equals(url) || url.length() < 1) {
                return null;
            }
            Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            // 图像数据转换,使用了矩阵转换
            BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT);
            int[] pixels = new int[QR_WIDTH * QR_HEIGHT];
            // 下面这里按照二维码的算法,逐个生成二维码的图片,
            // 两个for循环是图片横列扫描的结果
            for (int y = 0; y < QR_HEIGHT; y++) {
                for (int x = 0; x < QR_WIDTH; x++) {
                    if (bitMatrix.get(x, y)) {
                        pixels[y * QR_WIDTH + x] = 0xff000000;
                    } else {
                        pixels[y * QR_WIDTH + x] = 0xffffffff;
                    }
                }
            }
            // 生成二维码图片的格式,使用ARGB_8888
            Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888);
            bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
            return bitmap;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

22.得到自定义进度框:

/**
     * 得到自定义的progressDialog
     *
     * @param context
     * @param msg
     * @param bCancel
     *            按返回键是否取消
     * @return
     */
    public static Dialog createLoadingDialog(Context context, String msg, boolean bCancel) {

        LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view
        LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局
        // main.xml中的ImageView
        ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
        TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
        // 加载动画
        Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_animation);
        // 使用ImageView显示动画
        spaceshipImage.startAnimation(hyperspaceJumpAnimation);
        tipTextView.setText(msg);// 设置加载信息

        Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 创建自定义样式dialog

        loadingDialog.setCancelable(bCancel);// 不可以用“返回键”取消
        loadingDialog.setCanceledOnTouchOutside(false);
        loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
        return loadingDialog;

    }
时间: 2024-10-13 21:17:06

Android 开发实用方法大全的相关文章

ANDROID开发实用小工具

分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗 一.find bugs 静态检查工具 http://findbugs.sourceforge.net/ FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析 详情请参考:http://baike.baidu.com/view/2367937.htm 二.内测宝 - 测试分发管理平台 国内功能最完

Android开发实用技巧:Drawable和Bitmap之间不得不说的秘密

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低.我们理解为一种存储对象比较好. Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF.PNG.JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变.图形等. 一. Bitmap转Drawable Bitmap bm = xxx; //xxx根据你的情况获取 Bitmap

Android开发实用技巧:判断当前系统语言版本

Locale locale = getResources().getConfiguration().locale; String language = locale.getLanguage(); 以上代码可以获取到当前系统的语言码,中文的语言码为ch,英文的语言码为en,完整的语言码如下: bn_BD孟加拉语(孟加拉)  bo_CN 博多语(中国)  bo_IN 博多语(印度)  ce_PH 塞布安诺语(菲律宾)  de_LI 德语(列支敦士登)  fa_AF 波斯语(阿富汗)  fa_IR 波

Android开发实用的网站

在github上面找到一个个人觉得比较好的网站,好在可以方便下载开发工具,我的AndroidStudio就是在上面下载的,安装了一直在使用.该 网址主要收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. github地址:https://github.com/inferjay/AndroidDevTools

Android应用开发实用方法小集

/**指定格式返回当前系统时间*/ public static String getDataTime(String format) { SimpleDateFormat df = new SimpleDateFormat(format); return df.format(new Date()); } /** 获取手机IMEI(移动设备国际身份码)码*/ public static String getPhoneIMEI(Context context) { TelephonyManager t

Android开发实用工具类(小方法)

1,邮箱地址只展示部分,只展示@前面部分的第1个及最后一个字符,其它的用*代替: public static String spliteEmail(String email) {/**传入邮箱地址*/ String newEmail = email.split("@")[0];/**获取到邮箱@前面部分*/ String[] mails = new String[newEmail.length()]; StringBuffer sb = new StringBuffer(); if (

Android开发-- findViewById()方法得到空指针

如果想通过调用findViewById()方法获取到相应的控件,必须要求当前Activity的layout通过setContentView. 如果你通过其他方法添加了一个layout,如需获取这个layout中的View对象,首先需inflate这个layout,然后在该layout上调用findViewById(). 1 View v = inflater.inflate(id_number_of_layout); 2 View innerView = v.findViewById(id_nu

Android开发点点滴滴——一些基础的但实用的知识(2)

1.onItemLongClick和onItemClick事件截取 当须要同一时候获得一个listview的条目长按事件(onItemLongClick)和点击事件(onItemClick)时,仅仅须要在onItemLongClick事件触发函数中,return true就可以. 2.自己定义CheckBox样式 在布局文件里,添加一个属性 android:button,话不多说,直接上代码 <CheckBox android:id="@+id/xxx" android:layo

Android零基础入门第22节:ImageView的属性和方法大全

通过前面几期的学习,TextView控件及其子控件基本学习完成,可以在Android屏幕上显示一些文字或者按钮,那么从本期开始来学习如何在进行图片展示,这就是涉及到另外一个非常重要的控件家族,那就是ImageView. 一.认识ImageView ImageView继承自View组件,主要功能是用于显示图片,可以显示任意图像.ImageView与其子类的类图如下图所示. 从上图可以看到,ImageView 还派生出了 ImageButton.ZoomButton等组件,因此ImageView支持