android 常用工具类

来源:互联网 发布:js隐藏table 编辑:程序博客网 时间:2024/06/18 09:31

日志

  1. package net.wujingchao.android.utility
  2.  
  3. import android.util.Log;
  4.  
  5. public final class L {
  6.  
  7.     private final static int LEVEL = 5;
  8.  
  9.     private final static String DEFAULT_TAG = "L";
  10.  
  11.     private L() {
  12.         throw new UnsupportedOperationException("L cannot instantiated!");
  13.     }
  14.  
  15.     public static void v(String tag,String msg) {
  16.         if(LEVEL >= 5)Log.v(tag == null ? DEFAULT_TAG:tag,msg == null?"":msg);
  17.     }
  18.  
  19.     public static void d(String tag,String msg) {
  20.         if(LEVEL >= 4)Log.d(tag == null ? DEFAULT_TAG:tag,msg == null?"":msg);
  21.     }
  22.  
  23.     public static void i(String tag,String msg) {
  24.         if(LEVEL >= 3)Log.i(tag == null ? DEFAULT_TAG:tag,msg == null?"":msg);
  25.     }
  26.  
  27.     public static void w(String tag,String msg) {
  28.         if(LEVEL >= 2)Log.w(tag == null ? DEFAULT_TAG:tag,msg == null?"":msg);
  29.     }
  30.  
  31.     public static void e(String tag,String msg) {
  32.         if(LEVEL >= 1)Log.e(tag == null ? DEFAULT_TAG:tag,msg == null?"":msg);
  33.     }
  34. }

Toast

  1. package net.wujingchao.android.utility
  2.  
  3. import android.content.Context;
  4. import android.widget.Toast;
  5.  
  6. public class T {
  7.  
  8.     private final static boolean isShow = true;
  9.  
  10.     private T(){
  11.         throw new UnsupportedOperationException("T cannot be instantiated");
  12.     }
  13.  
  14.     public static void showShort(Context context,CharSequence text) {
  15.         if(isShow)Toast.makeText(context,text,Toast.LENGTH_SHORT).show();
  16.     }
  17.  
  18.     public static void showLong(Context context,CharSequence text) {
  19.         if(isShow)Toast.makeText(context,text,Toast.LENGTH_LONG).show();
  20.     }
  21. }

网络

  1. package net.wujingchao.android.utility
  2.  
  3. import android.app.Activity;
  4. import android.content.ComponentName;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.net.ConnectivityManager;
  8. import android.net.NetworkInfo;
  9.  
  10. import javax.net.ssl.HttpsURLConnection;
  11. import javax.net.ssl.SSLContext;
  12. import javax.net.ssl.TrustManager;
  13. import javax.net.ssl.X509TrustManager;
  14.  
  15. public class NetworkUtil {
  16.     
  17.     private NetworkUtil() {
  18.         throw new UnsupportedOperationException("NetworkUtil cannot be instantiated");
  19.     }
  20.  
  21.     /**
  22.      * 判断网络是否连接
  23.      *
  24.      */
  25.     public static boolean isConnected(Context context)  {
  26.         ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  27.         if (null != connectivity) {
  28.             NetworkInfo info = connectivity.getActiveNetworkInfo();
  29.             if (null != info && info.isConnected()){
  30.                 if (info.getState() == NetworkInfo.State.CONNECTED) {
  31.                     return true;
  32.                 }
  33.             }
  34.         }
  35.         return false;
  36.     }
  37.  
  38.     /**
  39.      * 判断是否是wifi连接
  40.      */
  41.     public static boolean isWifi(Context context){
  42.         ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  43.         if (connectivity == null) return false;
  44.         return connectivity.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
  45.  
  46.     }
  47.  
  48.     /**
  49.      * 打开网络设置界面
  50.      */
  51.     public static void openSetting(Activity activity) {
  52.         Intent intent = new Intent("/");
  53.         ComponentName componentName = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
  54.         intent.setComponent(componentName);
  55.         intent.setAction("android.intent.action.VIEW");
  56.         activity.startActivityForResult(intent, 0);
  57.     }
  58.  
  59.     /**
  60.      * 使用SSL不信任的证书
  61.      */
  62.     public static  void useUntrustedCertificate() {
  63.         // Create a trust manager that does not validate certificate chains
  64.         TrustManager[] trustAllCerts = new TrustManager[]{
  65.                 new X509TrustManager() {
  66.                     public java.security.cert.X509Certificate[] getAcceptedIssuers() {
  67.                         return null;
  68.                     }
  69.                     public void checkClientTrusted(
  70.                             java.security.cert.X509Certificate[] certs, String authType) {
  71.                     }
  72.                     public void checkServerTrusted(
  73.                             java.security.cert.X509Certificate[] certs, String authType) {
  74.                     }
  75.                 }
  76.         };
  77.         // Install the all-trusting trust manager
  78.         try {
  79.             SSLContext sc = SSLContext.getInstance("SSL");
  80.             sc.init(null, trustAllCerts, new java.security.SecureRandom());
  81.             HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  82.         } catch (Exception e) {
  83.            e.printStackTrace();
  84.         }
  85.     }
  86. }

像素单位转换

  1. package net.wujingchao.android.utility
  2.  
  3. import android.content.Context;
  4. import android.util.TypedValue;
  5.  
  6. public class DensityUtil {
  7.  
  8.     private DensityUtil() {
  9.         throw new UnsupportedOperationException("DensityUtil cannot be instantiated");
  10.     }
  11.  
  12.     public int dip2px(Context context,int dipValue) {
  13.         final float scale = context.getResources().getDisplayMetrics().density;
  14.         return (int)(dipValue*scale + 0.5f);
  15.     }
  16.  
  17.     public int px2dip(Context context,float pxValue) {
  18.         final float scale = context.getResources().getDisplayMetrics().density;
  19.         return (int)(pxValue/scale + 0.5f);
  20.     }
  21.  
  22.     public static float px2sp(Context context, float pxValue){
  23.         return (pxValue / context.getResources().getDisplayMetrics().scaledDensity);
  24.     }
  25.  
  26.     public static int sp2px(Context context, int spValue){
  27.         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
  28.                 spValue, context.getResources().getDisplayMetrics());
  29.     }
  30. }

屏幕

  1. package net.wujingchao.android.utility
  2.  
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Rect;
  7. import android.util.DisplayMetrics;
  8. import android.view.View;
  9. import android.view.WindowManager;
  10.  
  11. public class ScreenUtil {
  12.  
  13.     private ScreenUtil()
  14.     {
  15.         throw new UnsupportedOperationException("ScreenUtil cannot be instantiated");
  16.     }
  17.  
  18.     public static int getScreenWidth(Context context)
  19.     {
  20.         WindowManager wm = (WindowManager) context
  21.                 .getSystemService(Context.WINDOW_SERVICE);
  22.         DisplayMetrics outMetrics = new DisplayMetrics();
  23.         wm.getDefaultDisplay().getMetrics(outMetrics);
  24.         return outMetrics.widthPixels;
  25.     }
  26.  
  27.     public static int getScreenHeight(Context context) {
  28.         WindowManager wm = (WindowManager) context
  29.                 .getSystemService(Context.WINDOW_SERVICE);
  30.         DisplayMetrics outMetrics = new DisplayMetrics();
  31.         wm.getDefaultDisplay().getMetrics(outMetrics);
  32.         return outMetrics.heightPixels;
  33.     }
  34.  
  35.     public static int getStatusHeight(Context context) {
  36.         int statusHeight = -1;
  37.         try {
  38.             Class<?> clazz = Class.forName("com.android.internal.R$dimen");
  39.             Object object = clazz.newInstance();
  40.             int height = Integer.parseInt(clazz.getField("status_bar_height")
  41.                     .get(object).toString());
  42.             statusHeight = context.getResources().getDimensionPixelSize(height);
  43.         } catch (Exception e) {
  44.             e.printStackTrace();
  45.         }
  46.         return statusHeight;
  47.     }
  48.  
  49.     /**
  50.      * 获取当前屏幕截图,包含状态栏
  51.      */
  52.     public static Bitmap snapShotWithStatusBar(Activity activity){
  53.         View view = activity.getWindow().getDecorView();
  54.         view.setDrawingCacheEnabled(true);
  55.         view.buildDrawingCache();
  56.         Bitmap bmp = view.getDrawingCache();
  57.         int width = getScreenWidth(activity);
  58.         int height = getScreenHeight(activity);
  59.         Bitmap bp = null;
  60.         bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
  61.         view.destroyDrawingCache();
  62.         return bp;
  63.     }
  64.  
  65.     /**
  66.      * 获取当前屏幕截图,不包含状态栏
  67.      *
  68.      */
  69.     public static Bitmap snapShotWithoutStatusBar(Activity activity){
  70.         View view = activity.getWindow().getDecorView();
  71.         view.setDrawingCacheEnabled(true);
  72.         view.buildDrawingCache();
  73.         Bitmap bmp = view.getDrawingCache();
  74.         Rect frame = new Rect();
  75.         activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
  76.         int statusBarHeight = frame.top;
  77.         int width = getScreenWidth(activity);
  78.         int height = getScreenHeight(activity);
  79.         Bitmap bp = null;
  80.         bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height
  81.                 - statusBarHeight);
  82.         view.destroyDrawingCache();
  83.         return bp;
  84.     }
  85. }

App相关

  1. package net.wujingchao.android.utility
  2.  
  3. import android.content.Context;
  4. import android.content.pm.PackageInfo;
  5. import android.content.pm.PackageManager;
  6.  
  7. public class AppUtil {
  8.  
  9.     private AppUtil() {
  10.         throw new UnsupportedOperationException("AppUtil cannot instantiated");
  11.     }
  12.  
  13.     /**
  14.      * 获取app版本名
  15.      */
  16.     public static String getAppVersionName(Context context){
  17.         PackageManager pm = context.getPackageManager();
  18.         PackageInfo pi;
  19.         try {
  20.             pi = pm.getPackageInfo(context.getPackageName(),0);
  21.             return pi.versionName;
  22.         } catch (PackageManager.NameNotFoundException e) {
  23.             e.printStackTrace();
  24.         }
  25.         return "";
  26.     }
  27.  
  28.     /**
  29.      * 获取应用程序版本名称信息
  30.      */
  31.     public static String getVersionName(Context context)
  32.     {
  33.         try{
  34.             PackageManager packageManager = context.getPackageManager();
  35.             PackageInfo packageInfo = packageManager.getPackageInfo(
  36.                     context.getPackageName(), 0);
  37.             return packageInfo.versionName;
  38.         }catch (PackageManager.NameNotFoundException e) {
  39.             e.printStackTrace();
  40.         }
  41.         return null;
  42.     }
  43.  
  44.     /**
  45.      * 获取app版本号
  46.      */
  47.     public static int getAppVersionCode(Context context){
  48.         PackageManager pm = context.getPackageManager();
  49.         PackageInfo pi;
  50.         try {
  51.             pi = pm.getPackageInfo(context.getPackageName(),0);
  52.             return pi.versionCode;
  53.         } catch (PackageManager.NameNotFoundException e) {
  54.             e.printStackTrace();
  55.         }
  56.         return 0;
  57.     }
  58. }

键盘

  1. package net.wujingchao.android.utility
  2.  
  3. import android.content.Context;
  4. import android.view.inputmethod.InputMethodManager;
  5. import android.widget.EditText;
  6.  
  7. public class KeyBoardUtil{
  8.  
  9.     private KeyBoardUtil(){
  10.         throw new UnsupportedOperationException("KeyBoardUtil cannot be instantiated");
  11.     }
  12.  
  13.     /**
  14.      * 打卡软键盘
  15.      */
  16.     public static void openKeybord(EditText mEditText, Context mContext){
  17.         InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
  18.         imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
  19.         imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
  20.     }
  21.     /**
  22.      * 关闭软键盘
  23.      */
  24.     public static void closeKeybord(EditText mEditText, Context mContext) {
  25.         InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
  26.         imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
  27.     }
  28. }

文件上传下载

  1. package net.wujingchao.android.utility
  2.  
  3. import android.content.Context;
  4. import android.os.Environment;
  5.  
  6. import java.io.ByteArrayOutputStream;
  7. import java.io.DataOutputStream;
  8. import java.io.File; 
  9. import java.io.FileInputStream;
  10. import java.io.FileNotFoundException;
  11. import java.io.IOException;
  12. import java.io.InputStream; 
  13. import java.io.OutputStream;
  14. import java.net.HttpURLConnection;
  15. import java.net.MalformedURLException;
  16. import java.net.ProtocolException;
  17. import java.net.URL;
  18. import java.util.UUID;
  19.  
  20. import com.mixiaofan.App;
  21.  
  22. public class DownloadUtil {
  23.  
  24.  private static final int TIME_OUT = 30*1000; //超时时间
  25.  
  26.  private static final String CHARSET = "utf-8"; //设置编码
  27.  
  28.  private DownloadUtil() {
  29.     throw new UnsupportedOperationException("DownloadUtil cannot be instantiated");
  30.  }
  31.  
  32.     /**
  33.      * @param file  上传文件
  34.      * @param RequestURL 上传文件URL
  35.      * @return 服务器返回的信息,如果出错则返回为null
  36.      */
  37.  public static String uploadFile(File file,String RequestURL) {
  38.  String BOUNDARY = UUID.randomUUID().toString(); //边界标识 随机生成 String PREFIX = "--" , LINE_END = "\r\n";
  39.          String PREFIX = "--" , LINE_END = "\r\n";
  40.          String CONTENT_TYPE = "multipart/form-data"; //内容类型
  41.  try {
  42.  URL url = new URL(RequestURL);
  43.  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  44.              conn.setReadTimeout(TIME_OUT);
  45.              conn.setConnectTimeout(TIME_OUT);
  46.              conn.setDoInput(true); //允许输入流
  47.  conn.setDoOutput(true); //允许输出流
  48.  conn.setUseCaches(false); //不允许使用缓存 
  49.  conn.setRequestMethod("POST"); //请求方式 
  50.  conn.setRequestProperty("Charset", CHARSET);
  51.              conn.setRequestProperty("Cookie", "PHPSESSID=" + App.getSessionId());
  52.  //设置编码 
  53.  conn.setRequestProperty("connection", "keep-alive"); 
  54.  conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
  55.  if(file!=null) { 
  56.                      /** * 当文件不为空,把文件包装并且上传 */
  57.                      OutputStream outputSteam=conn.getOutputStream();
  58.                      DataOutputStream dos = new DataOutputStream(outputSteam);
  59.                      StringBuffer sb = new StringBuffer();
  60.                      sb.append(PREFIX);
  61.                      sb.append(BOUNDARY); sb.append(LINE_END);
  62.                      /**
  63.                      * 这里重点注意:
  64.                      * name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件
  65.                      * filename是文件的名字,包含后缀名的 比如:abc.png
  66.                      */
  67.                      sb.append("Content-Disposition: form-data; name=\"img\"; filename=\""+file.getName()+"\""+LINE_END);
  68.                      sb.append("Content-Type: application/octet-stream; charset="+CHARSET+LINE_END);
  69.                      sb.append(LINE_END);
  70.                      dos.write(sb.toString().getBytes());
  71.                      InputStream is = new FileInputStream(file);
  72.                      byte[] bytes = new byte[1024];
  73.                      int len;
  74.                      while((len=is.read(bytes))!=-1)
  75.                      {
  76.                         dos.write(bytes, 0, len);
  77.                      }
  78.                      is.close();
  79.                      dos.write(LINE_END.getBytes());
  80.                      byte[] end_data = (PREFIX+BOUNDARY+PREFIX+LINE_END).getBytes();
  81.                      dos.write(end_data);
  82.                      dos.flush();
  83.                      /**
  84.                      * 获取响应码 200=成功
  85.                      * 当响应成功,获取响应的流
  86.                      */
  87.                      ByteArrayOutputStream bos = new ByteArrayOutputStream();
  88.                      InputStream resultStream = conn.getInputStream();
  89.                      len = -1;
  90.                      byte [] buffer = new byte[1024*8];
  91.                      while((len = resultStream.read(buffer)) != -1) {
  92.                          bos.write(buffer,0,len);
  93.                      }
  94.                      resultStream.close();
  95.                      bos.flush();
  96.                      bos.close();
  97.                      String info = new String(bos.toByteArray());
  98.                      int res = conn.getResponseCode();
  99.                      if(res==200){
  100.                         return info;
  101.                      }else {
  102.                          return null;
  103.                      }
  104.     }
  105.                } catch (MalformedURLException e) {
  106.                     e.printStackTrace();
  107.                } catch (ProtocolException e) {
  108.                     e.printStackTrace();
  109.                } catch (FileNotFoundException e) {
  110.                     e.printStackTrace();
  111.                } catch (IOException e) {
  112.                      e.printStackTrace();
  113.                }
  114.          return null;
  115.  }
  116.  
  117.      public static byte[] download(String urlStr) {
  118.             HttpURLConnection conn = null;
  119.             InputStream is = null;
  120.             byte[] result = null;
  121.             ByteArrayOutputStream bos = null;
  122.             try {
  123.                 URL url = new URL(urlStr);
  124.                 conn = (HttpURLConnection) url.openConnection();
  125.                 conn.setRequestMethod("GET");
  126.                 conn.setConnectTimeout(TIME_OUT);
  127.                 conn.setReadTimeout(TIME_OUT);
  128.                 conn.setDoInput(true);
  129.                 conn.setUseCaches(false);//不使用缓存
  130.                 if(conn.getResponseCode() == 200) {
  131.                     is = conn.getInputStream();
  132.                     byte [] buffer = new byte[1024*8];
  133.                     int len;
  134.                     bos = new ByteArrayOutputStream();
  135.                     while((len = is.read(buffer)) != -1) {
  136.                         bos.write(buffer,0,len);
  137.                     }
  138.                     bos.flush();
  139.                     result = bos.toByteArray();
  140.                 }
  141.             } catch (MalformedURLException e) {
  142.                 e.printStackTrace();
  143.             } catch (IOException e) {
  144.                 e.printStackTrace();
  145.             } finally {
  146.                 try {
  147.                     if(bos != null){
  148.                         bos.close();
  149.                     }
  150.                     if (is != null) {
  151.                         is.close();
  152.                     }
  153.                     if (conn != null)conn.disconnect();
  154.                 } catch (IOException e) {
  155.                     e.printStackTrace();
  156.                 }
  157.             }
  158.             return result;
  159.         }
  160.  
  161.     /**
  162.      * 获取缓存文件
  163.      */
  164.      public static File getDiskCacheFile(Context context,String filename,boolean isExternal) {
  165.         if(isExternal && (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))) {
  166.             return new File(context.getExternalCacheDir(),filename);
  167.         }else {
  168.             return new File(context.getCacheDir(),filename);
  169.         }
  170.     }
  171.  
  172.     /**
  173.      * 获取缓存文件目录
  174.      */
  175.      public static File getDiskCacheDirectory(Context context) {
  176.         if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  177.             return context.getExternalCacheDir();
  178.         }else {
  179.             return context.getCacheDir();
  180.         }
  181.     }
  182.  }

加密

  1. package net.wujingchao.android.utility
  2.  
  3. import java.security.MessageDigest;
  4. import java.security.NoSuchAlgorithmException;
  5.  
  6. public class CipherUtil { 
  7.  
  8.     private CipherUtil() {
  9.  
  10.     }
  11.  
  12.     //字节数组转化为16进制字符串
  13.     public static String byteArrayToHex(byte[] byteArray) {
  14.         char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };
  15.         char[] resultCharArray =new char[byteArray.length * 2];
  16.         int index = 0;
  17.         for (byte b : byteArray) {
  18.             resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];
  19.             resultCharArray[index++] = hexDigits[& 0xf];
  20.         }
  21.         return new String(resultCharArray);
  22.     }
  23.  
  24.     //字节数组md5算法
  25.     public static byte[] md5 (byte [] bytes) {
  26.         try {
  27.             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
  28.             messageDigest.update(bytes);
  29.             return messageDigest.digest();
  30.         } catch (NoSuchAlgorithmException e) {
  31.             e.printStackTrace();
  32.         }
  33.         return null;
  34.     }
  35. }

时间

  1. package net.wujingchao.android.utility
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4.  
  5.  
  6. public class DateUtil {
  7.  
  8.     //转换中文对应的时段
  9.     public static String convertNowHour2CN(Date date) {
  10.         SimpleDateFormat sdf = new SimpleDateFormat("HH");
  11.         String hourString = sdf.format(date);
  12.         int hour = Integer.parseInt(hourString);
  13.         if(hour < 6) {
  14.             return "凌晨";
  15.         }else if(hour >= 6 && hour < 12) {
  16.             return "早上";
  17.         }else if(hour == 12) {
  18.             return "中午";
  19.         }else if(hour > 12 && hour <=18) {
  20.             return "下午";
  21.         }else if(hour >=19) {
  22.             return "晚上";
  23.         }
  24.         return "";
  25.     }
  26.  
  27.     //剩余秒数转换
  28.     public static String convertSecond2Day(int time) {
  29.         int day = time/86400;
  30.         int hour = (time - 86400*day)/3600;
  31.         int min = (time - 86400*day - 3600*hour)/60;
  32.         int sec = (time - 86400*day - 3600*hour - 60*min);
  33.         StringBuilder sb = new StringBuilder();
  34.         sb.append(day);
  35.         sb.append("天");
  36.         sb.append(hour);
  37.         sb.append("时");
  38.         sb.append(min);
  39.         sb.append("分");
  40.         sb.append(sec);
  41.         sb.append("秒");
  42.         return sb.toString();
  43.     }
  44.  
  45. }

 


0 0