工具类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);
}
}
