工具类ToolsManager import android.app.Activity;import android.content.Context;import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup;import android.widget.ListAdapter;import android.widget.ListView;impo
import android.app.Activity; import android.content.Context; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Tom on 2017/1/23. */ public class ToolsManager { private static final String EXTERNAL_STORAGE = "EXTERNAL_STORAGE"; // 外部存储路径 private static final String SECONDARY_STORAGE = "SECONDARY_STORAGE"; // 内部存储路径 /** * 获取存储根目录路径 * @return */ public static String getSdcardPath() { String m_output_path = System.getenv(EXTERNAL_STORAGE); if (m_output_path == null) { m_output_path = System.getenv(SECONDARY_STORAGE); } return m_output_path; } /** * 获取屏幕宽度 * * @param context * @return */ public static int getScreenWidth(Context context) { DisplayMetrics dm = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay() .getMetrics(dm); return dm.widthPixels; } /** * 获取屏幕高度 * * @param context * @return */ public static int getScreenHeight(Context context) { DisplayMetrics dm = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm); return dm.heightPixels; } /** * 判断给定字符串是否空白串。 空白串是指由空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串,返回true * * @param input * @return boolean */ public static boolean isEmpty(String input) { return ((input == null || "".equals(input) || "null".equals(input) || " " .equals(input)) ? true : false); } /** * 判定邮箱格式 * * @param strEmail * @return */ public static boolean isEmail(String strEmail) { String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$"; Pattern p = Pattern.compile(strPattern); Matcher m = p.matcher(strEmail); return m.matches(); } /** * 判断是否是手机号 * * @param mobile * @return */ public static boolean isMobile(String mobile) { String regex = "^((13[0-9])|(15[0-9])|(18[0-9]))\\d{8}$"; Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(mobile); return m.matches(); } /** * 判断是否是身份证号码 * * @param strEmail * @return */ public static boolean isIdentify(String strEmail) { String strPattern = "(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])"; Pattern p = Pattern.compile(strPattern); Matcher m = p.matcher(strEmail); return m.matches(); } /** * 判断是否为网络链接 * * @param url * @return */ public static boolean isWebLink(String url) { Pattern pattern = Pattern .compile("http://(([a-zA-z0-9]|-){1,}\\.){1,}[a-zA-z0-9]{1,}-*"); Matcher matcher = pattern.matcher(url); if (!matcher.find()) { return false; } else { return true; } } public static void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); // 计算子项View 的宽高 listItem.measure(0, 0); // 统计所有子项的总高度 totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 // params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } }