• Android开发中常用的工具类整理


    日志

     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相关

    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;
        }
    }

    键盘

     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 = "
    ";
     39          String PREFIX = "--" , LINE_END = "
    ";
     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[b & 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 }
  • 相关阅读:
    【HANA系列】SAP HANA跟我学HANA系列之创建计算视图一
    【HANA系列】SAP HANA计算视图中的RANK使用方法
    【ABAP系列】SAP ABAP7.40新语法简介第一篇
    【ABAP系列】SAP ABAP7.40新语法简介第二篇
    【MM系列】SAP 根据PO查找对应的打印FORM
    【ABAP系列】SAP BOM反查
    【FICO系列】SAP FICO折旧记账时出现错误:没有找到与所做选择一致的数据
    【PI系列】SAP IDOC发送状态03,PI没有收到消息的解决办法
    Struts2_属性驱动
    struts2_struts.xml配置文件讲解
  • 原文地址:https://www.cnblogs.com/lovejoy/p/4364874.html
Copyright © 2020-2023  润新知