Android常用工具类

转载:http://wujingchao.net/2015/03/16/android_common_utility_class.html

/*日志*/
package net.wujingchao.android.utilityimport


android.util.Log;


public final class L {
private final static int LEVEL = 5;
private final static String DEFAULT_TAG = "L";


private L() {
throw new UnsupportedOperationException("L cannot instantiated!");
}


public static void v(String tag, String msg) {
if (LEVEL >= 5) Log.v(tag == null ? DEFAULT_TAG : tag, msg == null ? "" : msg);
}


public static void d(String tag, String msg) {
if (LEVEL >= 4) Log.d(tag == null ? DEFAULT_TAG : tag, msg == null ? "" : msg);
}


public static void i(String tag, String msg) {
if (LEVEL >= 3) Log.i(tag == null ? DEFAULT_TAG : tag, msg == null ? "" : msg);
}


public static void w(String tag, String msg) {
if (LEVEL >= 2) Log.w(tag == null ? DEFAULT_TAG : tag, msg == null ? "" : msg);
}


public static void e(String tag, String msg) {
if (LEVEL >= 1) Log.e(tag == null ? DEFAULT_TAG : tag, msg == null ? "" : msg);
}
}
/*Toast*/
package net.wujingchao.android.utility import android.content.Context;import android.widget.Toast;


public class T {
private final static boolean isShow = true;


private T() {
throw new UnsupportedOperationException("T cannot be instantiated");
}


public static void showShort(Context context, CharSequence text) {
if (isShow) Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}


public static void showLong(Context context, CharSequence text) {
if (isShow) Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
}
/*网络*/
package net.wujingchao.android.utilityimport android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;


public class NetworkUtil {
private NetworkUtil() {
throw new UnsupportedOperationException("NetworkUtil cannot be instantiated");
}


/** 判断网络是否连接 * */
public static boolean isConnected(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (null != connectivity) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (null != info && info.isConnected()) {
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}


/** 判断是否是wifi连接 */
public static boolean isWifi(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) return false;
return connectivity.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
}


/** 打开网络设置界面 */
public static void openSetting(Activity activity) {
Intent intent = new Intent("/");
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
intent.setComponent(componentName);
intent.setAction("android.intent.action.VIEW");
activity.startActivityForResult(intent, 0);
}


/** 使用SSL不信任的证书 */
public static void useUntrustedCertificate() {
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}


public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}


public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
}};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*像素单位转换*/
package net.wujingchao.android.utility import android.content.Context;import android.util.TypedValue;


public class DensityUtil {
private DensityUtil() {
throw new UnsupportedOperationException("DensityUtil cannot be instantiated");
}


public int dip2px(Context context, int dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}


public int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}


public static float px2sp(Context context, float pxValue) {
return (pxValue / context.getResources().getDisplayMetrics().scaledDensity);
}


public static int sp2px(Context context, int spValue) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue, context.getResources().getDisplayMetrics());
}
}
/*屏幕*/
package net.wujingchao.android.utility import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Rect;import android.util.DisplayMetrics;import android.view.View;import android.view.WindowManager;


public class ScreenUtil {
private ScreenUtil() {
throw new UnsupportedOperationException("ScreenUtil cannot be instantiated");
}


public static int getScreenWidth(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.widthPixels;
}


public static int getScreenHeight(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.heightPixels;
}


public static int getStatusHeight(Context context) {
int statusHeight = -1;
try {
Class<?> clazz = Class.forName("com.android.internal.R$dimen");
Object object = clazz.newInstance();
int height = Integer.parseInt(clazz.getField("status_bar_height").get(object).toString());
statusHeight = context.getResources().getDimensionPixelSize(height);
} catch (Exception e) {
e.printStackTrace();
}
return statusHeight;
}


/** 获取当前屏幕截图,包含状态栏 */
public static Bitmap snapShotWithStatusBar(Activity activity) {
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
int width = getScreenWidth(activity);
int height = getScreenHeight(activity);
Bitmap bp = null;
bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
view.destroyDrawingCache();
return bp;
}


/** 获取当前屏幕截图,不包含状态栏 * */
public static Bitmap snapShotWithoutStatusBar(Activity activity) {
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
int width = getScreenWidth(activity);
int height = getScreenHeight(activity);
Bitmap bp = null;
bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height - statusBarHeight);
view.destroyDrawingCache();
return bp;
}
}
/*App相关*/
package net.wujingchao.android.utility import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;


public class AppUtil {
private AppUtil() {
throw new UnsupportedOperationException("AppUtil cannot instantiated");
}


/** 获取app版本名 */
public static String getAppVersionName(Context context) {
PackageManager pm = context.getPackageManager();
PackageInfo pi;
try {
pi = pm.getPackageInfo(context.getPackageName(), 0);
return pi.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}


/** 获取应用程序版本名称信息 */
public static String getVersionName(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
return packageInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}


/** 获取app版本号 */
public static int getAppVersionCode(Context context) {
PackageManager pm = context.getPackageManager();
PackageInfo pi;
try {
pi = pm.getPackageInfo(context.getPackageName(), 0);
return pi.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return 0;
}
}
/*键盘*/
package net.wujingchao.android.utilityimport android.content.Context;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;


public class KeyBoardUtil {
private KeyBoardUtil() {
throw new UnsupportedOperationException("KeyBoardUtil cannot be instantiated");
}


/** 打卡软键盘 */
public static void openKeybord(EditText mEditText, Context mContext) {
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}


/** 关闭软键盘 */
public static void closeKeybord(EditText mEditText, Context mContext) {
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
}
}
/*文件上传下载*/
package net.wujingchao.android.utilityimport
android.content.Context;import android.os.Environment;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;import java.io.File;
import java.io.FileInputStream;import java.io.FileNotFoundException;
import java.io.IOException;import java.io.InputStream;
import java.io.OutputStream;import java.net.HttpURLConnection;
import java.net.MalformedURLException;import java.net.ProtocolException;
import java.net.URL;import java.util.UUID;import com.mixiaofan.App;


public class DownloadUtil {
private static final int TIME_OUT = 30 * 1000; //超时时间
private static final String CHARSET = "utf-8"; //设置编码


private DownloadUtil() {
throw new UnsupportedOperationException("DownloadUtil cannot be instantiated");
}


/** @param file 上传文件 * @param RequestURL 上传文件URL * @return 服务器返回的信息,如果出错则返回为null */
public static String uploadFile(File file, String RequestURL) {
String BOUNDARY = UUID.randomUUID().toString(); //边界标识 随机生成
String PREFIX = "--", LINE_END = "\r\n";
String PREFIX = "--", LINE_END = "\r\n";
String CONTENT_TYPE = "multipart/form-data"; //内容类型
try {
URL url = new URL(RequestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(TIME_OUT);
conn.setConnectTimeout(TIME_OUT);
conn.setDoInput(true); //允许输入流
conn.setDoOutput(true); //允许输出流
conn.setUseCaches(false); //不允许使用缓存
conn.setRequestMethod("POST"); //请求方式
conn.setRequestProperty("Charset", CHARSET);
conn.setRequestProperty("Cookie", "PHPSESSID=" + App.getSessionId()); //设置编码
conn.setRequestProperty("connection", "keep-alive");
conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
if (file != null) { /** * 当文件不为空,把文件包装并且上传 */
OutputStream outputSteam = conn.getOutputStream();
DataOutputStream dos = new DataOutputStream(outputSteam);
StringBuffer sb = new StringBuffer();
sb.append(PREFIX);
sb.append(BOUNDARY);
sb.append(LINE_END); /** * 这里重点注意: * name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件 * filename是文件的名字,包含后缀名的 比如:abc.png */
sb.append("Content-Disposition: form-data; name=\"img\"; filename=\"" + file.getName() + "\"" + LINE_END);
sb.append("Content-Type: application/octet-stream; charset=" + CHARSET + LINE_END);
sb.append(LINE_END);
dos.write(sb.toString().getBytes());
InputStream is = new FileInputStream(file);
byte[] bytes = new byte[1024];
int len;
while ((len = is.read(bytes)) != -1) {
dos.write(bytes, 0, len);
}
is.close();
dos.write(LINE_END.getBytes());
byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END).getBytes();
dos.write(end_data);
dos.flush(); /** * 获取响应码 200=成功 * 当响应成功,获取响应的流 */
ByteArrayOutputStream bos = new ByteArrayOutputStream();
InputStream resultStream = conn.getInputStream();
len = -1;
byte[] buffer = new byte[1024 * 8];
while ((len = resultStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
resultStream.close();
bos.flush();
bos.close();
String info = new String(bos.toByteArray());
int res = conn.getResponseCode();
if (res == 200) {
return info;
} else {
return null;
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}


public static byte[] download(String urlStr) {
HttpURLConnection conn = null;
InputStream is = null;
byte[] result = null;
ByteArrayOutputStream bos = null;
try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(TIME_OUT);
conn.setReadTimeout(TIME_OUT);
conn.setDoInput(true);
conn.setUseCaches(false);//不使用缓存
if (conn.getResponseCode() == 200) {
is = conn.getInputStream();
byte[] buffer = new byte[1024 * 8];
int len;
bos = new ByteArrayOutputStream();
while ((len = is.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.flush();
result = bos.toByteArray();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
if (is != null) {
is.close();
}
if (conn != null) conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}


/** 获取缓存文件 */
public static File getDiskCacheFile(Context context, String filename, boolean isExternal) {
if (isExternal && (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))) {
return new File(context.getExternalCacheDir(), filename);
} else {
return new File(context.getCacheDir(), filename);
}
}


/** 获取缓存文件目录 */
public static File getDiskCacheDirectory(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return context.getExternalCacheDir();
} else {
return context.getCacheDir();
}
}
}
/*加密*/
package net.wujingchao.android.utilityimport java.security.MessageDigest;import java.security.NoSuchAlgorithmException;


public class CipherUtil {
private CipherUtil() {
}
/*字节数组转化为16进制字符串*/


public static String byteArrayToHex(byte[] byteArray) {
char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
char[] resultCharArray = new char[byteArray.length * 2];
int index = 0;
for (byte b : byteArray) {
resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
resultCharArray[index++] = hexDigits[b & 0xf];
}
return new String(resultCharArray);
}


/*字节数组md5算法*/
public static byte[] md5(byte[] bytes) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(bytes);
return messageDigest.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}
/*时间*/
package net.wujingchao.android.utilityimport java.text.SimpleDateFormat;import java.util.Date;


/**
*
*/
public class DateUtil {
/*转换中文对应的时段*/
public static String convertNowHour2CN(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("HH");
String hourString = sdf.format(date);
int hour = Integer.parseInt(hourString);
if (hour < 6) {
return "凌晨";
} else if (hour >= 6 && hour < 12) {
return "早上";
} else if (hour == 12) {
return "中午";
} else if (hour > 12 && hour <= 18) {
return "下午";
} else if (hour >= 19) {
return "晚上";
}
return "";
}


/*剩余秒数转换*/
public static String convertSecond2Day(int time) {
int day = time / 86400;
int hour = (time - 86400 * day) / 3600;
int min = (time - 86400 * day - 3600 * hour) / 60;
int sec = (time - 86400 * day - 3600 * hour - 60 * min);
StringBuilder sb = new StringBuilder();
sb.append(day);
sb.append("天");
sb.append(hour);
sb.append("时");
sb.append(min);
sb.append("分");
sb.append(sec);
sb.append("秒");
return sb.toString();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值