Android 开发实用方法大全

来源:互联网 发布:php就业班54期 编辑:程序博客网 时间:2024/05/01 01:26

注:本篇博客会不定时更新


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;    }
复制代码23.判断APP处于前台状态还是后台状态

ublic static boolean isApplicationBackground( final Context context) {     ActivityManager am = (ActivityManager) context         .getSystemService(Context.ACTIVITY_SERVICE);     @SuppressWarnings ( "deprecation" )     List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks( 1 );     if (!tasks.isEmpty()) {       ComponentName topActivity = tasks.get( 0 ).topActivity;       if (!topActivity.getPackageName().equals(context.getPackageName())) {         return true ;       }     }     return false ;   }需要添加权限<uses-permission    android:name= "android.permission.GET_TASKS" />

24.23.安装apk

public static void installApk(Context context, File file) {   Intent intent = new Intent();   intent.setAction( "android.intent.action.VIEW" );   intent.addCategory( "android.intent.category.DEFAULT" );   intent.setType( "application/vnd.android.package-archive" );   intent.setDataAndType(Uri.fromFile(file),       "application/vnd.android.package-archive" );   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   context.startActivity(intent);}




1 0