Utils
来源:互联网 发布:二维码制作软件 编辑:程序博客网 时间:2024/05/17 10:40
package com.zqi;
import Android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.telephony.TelephonyManager;
import android.text.InputFilter;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.security.MessageDigest;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 共通工具类
*
* @author zq
*/
public class Utility {
public static boolean isInternetAvailable(Context context) { try { ConnectivityManager manger = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manger.getActiveNetworkInfo(); return (info != null && info.isConnected()); } catch (Exception e) { return false; }}/* * 此方法是用来检测电话号码是否合法 如果合法,返回true 如果不合法,返回false */public static boolean isPhoneNumber(String PhoneNumber) { Pattern p = Pattern .compile("^((13[0-9])|(15[^4,\\D])|(18[0,3,5-9])|(17[0-9]))\\d{8}$"); Matcher m = p.matcher(PhoneNumber); return m.matches();}/** * MD5加密。 * * @param str 字符串 * @return MD5加密后字符串 */public static String encryptMd5(String str) { try { // 加密 MessageDigest md5Digest = MessageDigest.getInstance("MD5"); md5Digest.update(str.getBytes("utf-8")); byte[] bytes = md5Digest.digest(); // 转换成16进制 String hexString = toHexString(bytes); return hexString; } catch (Exception e) { return null; }}/*** * 打电话 * * @param phone */public static void makePhone(Context context, String phone) { Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CALL_PHONE) != PackageManager .PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. context.startActivity(intent); return; }}/** * 格式化金额。 * * @param money 金额 * @return 格式化的金额 */public static String formatMoneyString(String money) { String moneyFormatted = money; if (money != null && !"".equals(money.trim())) { Double moneyDouble = Double.parseDouble(money); moneyFormatted = new DecimalFormat("¥#0.00").format(moneyDouble); } return moneyFormatted;}/** * 获取资源图片 * * @param id 资源图片id * @return */public static Drawable getResImage(Context context, int id) { Drawable image = context.getResources().getDrawable(id); return image;}/** * 设置可用属性。 * * @param v View * @param enabled 可用属性 */public static void setEnabled(View v, boolean enabled) { if (v.isEnabled() != enabled) { v.setEnabled(enabled); }}/** * 格式化日期。 * * @param format 格式 * @param date 日期 * @return 显示用格式的日期 */public static String formatDate(String format, Date date) { String formattedDate = new SimpleDateFormat(format).format(date); return formattedDate;}/** * 格式化时间 * * @param year * @param month * @param date * @param hour * @param minute * @return */public static String formatDateTimeDisp(int year, int month, int date, int hour, int minute) { String formattedDateTime = formatString("%04d-%02d-%02d %02d:%02d", year, month, date, hour, minute); return formattedDateTime;}/*** * 格式化日期 * * @param year 年 * @param month 月 * @param day 日 * @return */public static String formatDate(int year, int month, int day) { String formatedDate = formatString("%04d-%02d-%02d", year, month, day); return formatedDate;}/** * 格式化字符串 * * @param format 格式 * @param args 内容 * @return 格式化的字符串 */private static String formatString(String format, Object... args) { String formattedString = String.format(format, args); return formattedString;}/** * 解析日期。 * * @param format 格式 * @param dateStr 日期字符串 * @return 日期 */public static Date parseDate(String format, String dateStr) { Date date; try { date = new SimpleDateFormat(format).parse(dateStr); } catch (ParseException e) { date = null; } return date;}/** * 格式化数量。 * * @param count 数量 * @return 格式化的数量 */public static String formatCount(int count) { String countFormatted = new DecimalFormat("#,##0").format(count); return countFormatted;}/** * 解析数量。 * * @param countStr 数量字符串 * @return 数量 */public static int parseCount(String countStr) { int count = Integer.parseInt(countStr.replaceAll(",", "")); return count;}/** * 格式化金额。 * * @param money 金额 * @return 格式化的金额 */public static String formatMoney(BigDecimal money) { String moneyFormatted=""; try { moneyFormatted = new DecimalFormat("¥#0.00").format(money); } catch (Exception e) { e.printStackTrace(); } return moneyFormatted;}/*** * 格式化金額 * * @param money * @return */public static String formatMoneyNoSymbol(BigDecimal money) { String moneyFormatted = new DecimalFormat("#0.00").format(money); return moneyFormatted;}/*** * 格式化金額 * * @param money * @return */public static String formatMoneyString2(BigDecimal money) { String moneyFormatted = new DecimalFormat("#0.00").format(money); return moneyFormatted;}/** * 格式化金额。 * * @param money 金额 * @return 格式化的金额 */public static String formatMoney(double money) { String moneyFormatted = new DecimalFormat("¥#0.00").format(money); return moneyFormatted;}/** * 解析金额。 * * @param moneyStr 金额字符串 * @return 金额 */public static double parseMoney(String moneyStr) { double money = Double.parseDouble(moneyStr.substring(1)); return money;}/** * @param phoneNO 手机号 * @return 是否为手机号 */public static boolean isPhoneNO(String phoneNO) { /* boolean isPhoneNO = phoneNO .matches("^((13[0-9])|(15[^4,\\D])|(18[0,3,5-9])|(17[7-8]))\\d{8}$");*/ boolean isPhoneNO = phoneNO .matches("^1\\d{10}$"); return isPhoneNO;}/** * 将字符串转换成16进制字符串。 * * @param bytes 加密后bytes数组 * @return 16进制字符串 */private static String toHexString(byte[] bytes) { StringBuilder hexBuilder = new StringBuilder(); for (byte b : bytes) { // 转换为16进制 String hex = Integer.toHexString(b & 0xFF); if (hex.length() == 1) { hexBuilder.append("0"); } hexBuilder.append(hex); } // 转换为大写 String hexString = hexBuilder.toString().toUpperCase(); return hexString;}/** * 校验密码安全等级。 * * @return 0:密码为空,1:密码长度小于6,2:输入了不符合规则的字符,3:密码安全等级为低,4:正常密码 */public static int checkPassLevel(String pass) { // 空 if (pass.isEmpty()) { return 0; } // 不足6位 if (pass.length() < 6) { return 1; } // 格式 String reg = "[\\da-zA-Z@_]+"; if (!pass.matches(reg)) { return 2; } // 只包含一种 String regLowNumber = "[\\d]+"; String regLowChar = "[a-zA-Z]+"; String regLow = "[@_]+"; if (pass.matches(regLowNumber) || pass.matches(regLowChar) || pass.matches(regLow)) { return 3; } return 4;}/** * 验证车牌号码是否正确 * * @return 1:输入为空 2:车牌号必须为6位 3:车牌首位必须是大写字母 4:第2~6位必须是大写英数字 0:正常值 */public static int checkCarNumber(String carNumber) { // 车牌号码可包含的字符 String regChar = "[A-Z]+"; String regRight = "[\\dA-Z]+"; if (carNumber == null || "".equals(carNumber)) { return 1; } if (6 != carNumber.length()) { return 2; } if (!carNumber.substring(0, 1).matches(regChar)) { return 3; } if (!carNumber.substring(1, 6).matches(regRight)) { return 4; } return 0;}/*** * 获取GridView 每一项宽度 * * @param context 关联 * @param margId 左右间距 * @param margItem 项目间距 * @param Column 列数 * @return 列宽 */public static int getItemWidth(Context context, int margId, int margItem, int Column) { // 获取左右边距 int marg; if (margId == -1) { marg = 0; } else { marg = context.getResources().getDimensionPixelSize(margId); } int margm; // 获取项目间距离 if (margItem == -1) { margm = 0; } else { margm = context.getResources().getDimensionPixelSize(margItem); } // 获取屏幕宽度 int wWidth = WindowSizeUtil.getWidth(context); // 获取项目总宽度 int aWidth = wWidth - marg * 2 - margm * (Column - 1); // 获取每一项宽度 int cWidth = aWidth / Column; return cWidth;}/*** * 获取屏幕中的大小 * * @param context 关联 * @param sizeId 大小的id * @return 大小 */public static int getPixelSize(Context context, int sizeId) { int size = 0; size = context.getResources().getDimensionPixelSize(sizeId); return size;}/*** * 将sp转换为像素 * * @param context 关联 * @param spId spid * @return */public static int getSpAsPx(Context context, int spId) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (context.getResources().getDimension(spId) / fontScale + 0.5f);}/*** * 将dp转换为px * * @param context 关联 * @param dpId dpid * @return */public static int getDpAsPx(Context context, int dpId) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (context.getResources().getDimension(dpId) * scale + 0.5f);}/*** * 获取版本号 * * @return */public static String getPackageVersion(Context context) { String versionNo = null; try { PackageManager pManager = context.getPackageManager(); PackageInfo pInfo = pManager.getPackageInfo( context.getPackageName(), 0); versionNo = pInfo.versionName; } catch (Exception e) { Log.e("VersionUpdate", "getPackageVersion fill"); } return versionNo;}/*** * 生成设备唯一标识码 */public static String getUUID(Context context) { UUID uuid = null; if (uuid == null) { PreferencesUtility pu = new PreferencesUtility(context, "deviceInfo"); String id = pu.getPreferencesAsString("deviceUUID"); if (id != null && id.length() > 0) { uuid = UUID.fromString(id); } else { final String androidId = Settings.Secure.getString( context.getContentResolver(), Settings.Secure.ANDROID_ID); try { if (!"9774d56d682e549c".equals(androidId)) { uuid = UUID.nameUUIDFromBytes(androidId .getBytes("utf8")); } else { final String deviceId = ((TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE)) .getDeviceId(); uuid = deviceId != null ? UUID .nameUUIDFromBytes(deviceId.getBytes("utf8")) : UUID.randomUUID(); } } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } pu.setPreferencesField("deviceUUID", uuid.toString()); } } return uuid.toString();}/*** * 给TextView 设置下划线 * * @param textView */public static void setTextViewUnderLine(TextView textView) { textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); // 下划线 textView.getPaint().setAntiAlias(true);// 抗锯齿}public static void setTextViewMiddleLine(TextView textView){ textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); // 中间横线 textView.getPaint().setAntiAlias(true);// 抗锯齿}/*** * 设置EditText最大字符数量 * * @param edInput 输入框 * @param num 输入数目 */public static void setInputCount(EditText edInput, int num) { edInput.setFilters(new InputFilter[]{new InputFilter.LengthFilter(num)});}public static void setInputCount(TextView vInput,int num){ vInput.setFilters(new InputFilter[]{new InputFilter.LengthFilter(num)});}/*** * 获取版本名称 * * @param context * @return */public static String getVersionName(Context context) { PackageInfo pi = null; try { PackageManager pm = context.getPackageManager(); pi = pm.getPackageInfo(context.getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return pi.versionName;}
}
- UTILS
- Utils
- utils
- utils
- Utils
- Utils
- Utils
- utils
- Utils
- Utils
- Utils
- UTILS
- Utils
- Utils
- Utils
- Utils
- utils
- Utils
- 我收藏的好多学习网站
- JavaScript在页面中的执行顺序
- 深度解析RabbitMQ集群
- 解决table中<thead>固定,只有列表数据滚动的问题
- iOS - Xcode联网设置
- Utils
- 几种常用的sql分页语句
- NodeJS+MongoDB+LoopBack环境配置安装
- 发送邮件
- 2016-10-27 待交易清单
- 编程给自己玩
- java学习之路
- (2016 弱校联盟十一专场10.3) Similarity of Subtrees DFS + hash
- 在CentOS6.8上部署项目以及如何查看错误日志