Android|Java 开发常用工具类整理

如题 该文章展示的是我开发过程中使用的部分常用工具类方法,不定期更新。


欢迎各位大牛批评指教,如有发现错误,欢迎留言指教,如有更好的实现方式,也欢迎留言交流学习,谢谢。


<span style="background-color: rgb(240, 240, 240);">package com.kevin.test.utils;</span>
/**
 * 字符串格式匹配工具类 匹配手机号、座机号、邮箱等
 * 
 * @author blj
 * 
 */
public class FormatCheckUtils
{

	/**
	 * 判断是否符合邮箱格式
	 */
	public static boolean checkEmailValid(String strEmail)
	{
		if (null == strEmail)
		{
			return false;
		}
		return strEmail.matches("[a-zA-Z0-9_]+@[a-z0-9]+(.[a-z]+){2}");
	}



	/**
	 * 判断是否符合座机号格式
	 * 
	 * @param phoneNumber
	 * @return
	 */
	public static boolean checkPhoneNumberValid(String phoneNumber)
	{
		if (null == phoneNumber)
		{
			return false;
		}

		/**
		 * 匹配北京上海等3-8格式:(^0[1,2]{1}\\d{1}-?\\d{8}
		 * 匹配其他省份等4-7/8格式:(^0[3-9]{1}\\d{2}-?\\d{7,8})
		 * 匹配内部电话转接号:(-(\\d{1,4}))?$)
		 */
		// 区号与座机号之间可不添加“-” 外部号码与内部号码之间必须添加“-”
		String check = "((^0[1,2]{1}\\d{1}-?\\d{8}|(^0[3-9]{1}\\d{2}-?\\d{7,8}))(-(\\d{1,4}))?$)";
		return phoneNumber.matches(check);
	}

	/**
	 * 验证手机号方法
	 * 
	 * @param strPhoneNum
	 * @return
	 */
	public static boolean checkMobileNumberValid(String strPhoneNum)
	{
		if (null == strPhoneNum)
		{
			return false;
		}
		/**
		 * 匹配13、15、18开头手机号 排除154 开头手机号
		 * 匹配170、176、177、178开头手机号
		 * 匹配规则参考当前(2015-04-29)百度百科“手机号”罗列号码
		 */
		String checkphone = "^(((13|18)[0-9])|(15[^4,\\D])|170|176|177|178)\\d{8}$";
		return strPhoneNum.matches(checkphone);

	}

}

二 、Android Toast 工具类 打Toast 比较麻烦 抽取封装了一下 传值只传Context String 或 Context StringID即可。

import android.content.Context;
import android.widget.Toast;

/**
 * Toast 工具类
 * 
 * @author blj
 * 
 */
public class ToastUtils
{

	/**
	 * 短提示 by resId
	 * 
	 * @param context
	 * @param resId
	 */
	public static void shortShowResId(Context context, int resId)
	{
		Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();
	}

	/**
	 * 长提示 by resId
	 * 
	 * @param context
	 * @param resId
	 */
	public static void longShowResId(Context context, int resId)
	{
		Toast.makeText(context, resId, Toast.LENGTH_LONG).show();
	}

	/**
	 * 短提示 by String
	 * 
	 * @param context
	 * @param string
	 */
	public static void shortShowStr(Context context, String string)
	{
		Toast.makeText(context, string, Toast.LENGTH_SHORT).show();
	}

	/**
	 * 常提示 by String
	 * 
	 * @param context
	 * @param string
	 */
	public static void longShowStr(Context context, String string)
	{
		Toast.makeText(context, string, Toast.LENGTH_LONG).show();
	}

}

三、Android 剪切粘贴工具类

import android.annotation.SuppressLint;
import android.content.ClipboardManager;
import android.content.Context;

public class ClipBoardUtil {
	/**
	 * 实现文本复制功能 
	 * 
	 * @param content
	 */
	@SuppressLint("NewApi")
	public static void copy(Context context, String content) {
		// 得到剪贴板管理器
		ClipboardManager cmb = (ClipboardManager) context
				.getSystemService(Context.CLIPBOARD_SERVICE);
		cmb.setText(content.trim());
	}

	/**
	 * 实现粘贴功能 
	 * 
	 * @param context
	 * @return
	 */
	@SuppressLint("NewApi")
	public static String paste(Context context) {
		// 得到剪贴板管理器
		ClipboardManager cmb = (ClipboardManager) context
				.getSystemService(Context.CLIPBOARD_SERVICE);
		return cmb.getText().toString().trim();
	}

}

四、Android dp、px 转换工具类

import android.content.Context;

/**
 * dp与px转换工具
 * 
 */
public class DensityUtil
{
	/**
	 * 根据手机的分辨率从 dip 的单位 转成为 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);
	}

	public static int getPXFromString(Context context, String value)
	{
		String lowerValue = value.toLowerCase();
		
		if (lowerValue.endsWith("px"))
		{
			return Integer.parseInt(lowerValue.substring(0, lowerValue.indexOf("px")));
		}
		else if (lowerValue.endsWith("dp") || lowerValue.endsWith("dip"))
		{
			return dip2px(context, Integer.parseInt(lowerValue.substring(0, lowerValue.indexOf("d"))));
		}
		else if (lowerValue.matches("\\d+")) 
		{
			return Integer.parseInt(lowerValue);
		}
		else
		{
			throw new RuntimeException("转换字符串不合法");
		}
	}
}


未完待续,持续更新中。。。


封装的最新的工具类库请关注我一直在维护的这个 Github库:

Android 基础资源库 Github


欢迎留言批评指教,交流学习,谢谢!

原创文章 转载请注明出处:http://blog.csdn.net/blogblj/article/details/45364965

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值