首页 > 代码库 > 摘录android工具类

摘录android工具类

 1 import android.content.Context; 2 import android.content.pm.PackageInfo; 3 import android.content.pm.PackageManager; 4 import android.content.pm.PackageManager.NameNotFoundException; 5  6 //跟App相关的辅助类 7 public class AppUtils 8 { 9 10     private AppUtils()11     {12         /* cannot be instantiated */13         throw new UnsupportedOperationException("cannot be instantiated");14 15     }16 17     /**18      * 获取应用程序名称19      */20     public static String getAppName(Context context)21     {22         try23         {24             PackageManager packageManager = context.getPackageManager();25             PackageInfo packageInfo = packageManager.getPackageInfo(26                     context.getPackageName(), 0);27             int labelRes = packageInfo.applicationInfo.labelRes;28             return context.getResources().getString(labelRes);29         } catch (NameNotFoundException e)30         {31             e.printStackTrace();32         }33         return null;34     }35 36     /**37      * [获取应用程序版本名称信息]38      * 39      * @param context40      * @return 当前应用的版本名称41      */42     public static String getVersionName(Context context)43     {44         try45         {46             PackageManager packageManager = context.getPackageManager();47             PackageInfo packageInfo = packageManager.getPackageInfo(48                     context.getPackageName(), 0);49             return packageInfo.versionName;50 51         } catch (NameNotFoundException e)52         {53             e.printStackTrace();54         }55         return null;56     }57 58 }
View Code

二、常用单位转换的辅助类

 1 import android.content.Context; 2 import android.util.TypedValue; 3  4 //常用单位转换的辅助类 5 public class DensityUtils 6 { 7     private DensityUtils() 8     { 9         /* cannot be instantiated */10         throw new UnsupportedOperationException("cannot be instantiated");11     }12 13     /**14      * dp转px15      * 16      * @param context17      * @param val18      * @return19      */20     public static int dp2px(Context context, float dpVal)21     {22         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,23                 dpVal, context.getResources().getDisplayMetrics());24     }25 26     /**27      * sp转px28      * 29      * @param context30      * @param val31      * @return32      */33     public static int sp2px(Context context, float spVal)34     {35         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,36                 spVal, context.getResources().getDisplayMetrics());37     }38 39     /**40      * px转dp41      * 42      * @param context43      * @param pxVal44      * @return45      */46     public static float px2dp(Context context, float pxVal)47     {48         final float scale = context.getResources().getDisplayMetrics().density;49         return (pxVal / scale);50     }51 52     /**53      * px转sp54      * 55      * @param fontScale56      * @param pxVal57      * @return58      */59     public static float px2sp(Context context, float pxVal)60     {61         return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);62     }63 64 }
View Code

三、Http请求的工具类

  1 import java.io.BufferedReader;  2 import java.io.ByteArrayOutputStream;  3 import java.io.IOException;  4 import java.io.InputStream;  5 import java.io.InputStreamReader;  6 import java.io.PrintWriter;  7 import java.net.HttpURLConnection;  8 import java.net.URL;  9  10 //Http请求的工具类 11 public class HttpUtils 12 { 13  14     private static final int TIMEOUT_IN_MILLIONS = 5000; 15  16     public interface CallBack 17     { 18         void onRequestComplete(String result); 19     } 20  21  22     /** 23      * 异步的Get请求 24      *  25      * @param urlStr 26      * @param callBack 27      */ 28     public static void doGetAsyn(final String urlStr, final CallBack callBack) 29     { 30         new Thread() 31         { 32             public void run() 33             { 34                 try 35                 { 36                     String result = doGet(urlStr); 37                     if (callBack != null) 38                     { 39                         callBack.onRequestComplete(result); 40                     } 41                 } catch (Exception e) 42                 { 43                     e.printStackTrace(); 44                 } 45  46             }; 47         }.start(); 48     } 49  50     /** 51      * 异步的Post请求 52      * @param urlStr 53      * @param params 54      * @param callBack 55      * @throws Exception 56      */ 57     public static void doPostAsyn(final String urlStr, final String params, 58             final CallBack callBack) throws Exception 59     { 60         new Thread() 61         { 62             public void run() 63             { 64                 try 65                 { 66                     String result = doPost(urlStr, params); 67                     if (callBack != null) 68                     { 69                         callBack.onRequestComplete(result); 70                     } 71                 } catch (Exception e) 72                 { 73                     e.printStackTrace(); 74                 } 75  76             }; 77         }.start(); 78  79     } 80  81     /** 82      * Get请求,获得返回数据 83      *  84      * @param urlStr 85      * @return 86      * @throws Exception 87      */ 88     public static String doGet(String urlStr)  89     { 90         URL url = null; 91         HttpURLConnection conn = null; 92         InputStream is = null; 93         ByteArrayOutputStream baos = null; 94         try 95         { 96             url = new URL(urlStr); 97             conn = (HttpURLConnection) url.openConnection(); 98             conn.setReadTimeout(TIMEOUT_IN_MILLIONS); 99             conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);100             conn.setRequestMethod("GET");101             conn.setRequestProperty("accept", "*/*");102             conn.setRequestProperty("connection", "Keep-Alive");103             if (conn.getResponseCode() == 200)104             {105                 is = conn.getInputStream();106                 baos = new ByteArrayOutputStream();107                 int len = -1;108                 byte[] buf = new byte[128];109 110                 while ((len = is.read(buf)) != -1)111                 {112                     baos.write(buf, 0, len);113                 }114                 baos.flush();115                 return baos.toString();116             } else117             {118                 throw new RuntimeException(" responseCode is not 200 ... ");119             }120 121         } catch (Exception e)122         {123             e.printStackTrace();124         } finally125         {126             try127             {128                 if (is != null)129                     is.close();130             } catch (IOException e)131             {132             }133             try134             {135                 if (baos != null)136                     baos.close();137             } catch (IOException e)138             {139             }140             conn.disconnect();141         }142         143         return null ;144 145     }146 147     /**148      * 向指定 URL 发送POST方法的请求149      * 150      * @param url151      *            发送请求的 URL152      * @param param153      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。154      * @return 所代表远程资源的响应结果155      * @throws Exception156      */157     public static String doPost(String url, String param) 158     {159         PrintWriter out = null;160         BufferedReader in = null;161         String result = "";162         try163         {164             URL realUrl = new URL(url);165             // 打开和URL之间的连接166             HttpURLConnection conn = (HttpURLConnection) realUrl167                     .openConnection();168             // 设置通用的请求属性169             conn.setRequestProperty("accept", "*/*");170             conn.setRequestProperty("connection", "Keep-Alive");171             conn.setRequestMethod("POST");172             conn.setRequestProperty("Content-Type",173                     "application/x-www-form-urlencoded");174             conn.setRequestProperty("charset", "utf-8");175             conn.setUseCaches(false);176             // 发送POST请求必须设置如下两行177             conn.setDoOutput(true);178             conn.setDoInput(true);179             conn.setReadTimeout(TIMEOUT_IN_MILLIONS);180             conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);181 182             if (param != null && !param.trim().equals(""))183             {184                 // 获取URLConnection对象对应的输出流185                 out = new PrintWriter(conn.getOutputStream());186                 // 发送请求参数187                 out.print(param);188                 // flush输出流的缓冲189                 out.flush();190             }191             // 定义BufferedReader输入流来读取URL的响应192             in = new BufferedReader(193                     new InputStreamReader(conn.getInputStream()));194             String line;195             while ((line = in.readLine()) != null)196             {197                 result += line;198             }199         } catch (Exception e)200         {201             e.printStackTrace();202         }203         // 使用finally块来关闭输出流、输入流204         finally205         {206             try207             {208                 if (out != null)209                 {210                     out.close();211                 }212                 if (in != null)213                 {214                     in.close();215                 }216             } catch (IOException ex)217             {218                 ex.printStackTrace();219             }220         }221         return result;222     }223 }
View Code

四、打开关闭软键盘

 1 import android.content.Context; 2 import android.view.inputmethod.InputMethodManager; 3 import android.widget.EditText; 4  5 //打开或关闭软键盘 6 public class KeyBoardUtils 7 { 8     /** 9      * 打卡软键盘10      * 11      * @param mEditText输入框12      * @param mContext上下文13      */14     public static void openKeybord(EditText mEditText, Context mContext)15     {16         InputMethodManager imm = (InputMethodManager) mContext17                 .getSystemService(Context.INPUT_METHOD_SERVICE);18         imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);19         imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,20                 InputMethodManager.HIDE_IMPLICIT_ONLY);21     }22 23     /**24      * 关闭软键盘25      * 26      * @param mEditText输入框27      * @param mContext上下文28      */29     public static void closeKeybord(EditText mEditText, Context mContext)30     {31         InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);32 33         imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);34     }35 }
View Code

五、统一管理类

 1 import android.util.Log; 2  3 //Logcat统一管理类 4 public class L 5 { 6  7     private L() 8     { 9         /* cannot be instantiated */10         throw new UnsupportedOperationException("cannot be instantiated");11     }12 13     public static boolean isDebug = true;// 是否需要打印bug,可以在application的onCreate函数里面初始化14     private static final String TAG = "way";15 16     // 下面四个是默认tag的函数17     public static void i(String msg)18     {19         if (isDebug)20             Log.i(TAG, msg);21     }22 23     public static void d(String msg)24     {25         if (isDebug)26             Log.d(TAG, msg);27     }28 29     public static void e(String msg)30     {31         if (isDebug)32             Log.e(TAG, msg);33     }34 35     public static void v(String msg)36     {37         if (isDebug)38             Log.v(TAG, msg);39     }40 41     // 下面是传入自定义tag的函数42     public static void i(String tag, String msg)43     {44         if (isDebug)45             Log.i(tag, msg);46     }47 48     public static void d(String tag, String msg)49     {50         if (isDebug)51             Log.i(tag, msg);52     }53 54     public static void e(String tag, String msg)55     {56         if (isDebug)57             Log.i(tag, msg);58     }59 60     public static void v(String tag, String msg)61     {62         if (isDebug)63             Log.i(tag, msg);64     }65 }
View Code

六、网络工具类

 1 import android.app.Activity; 2 import android.content.ComponentName; 3 import android.content.Context; 4 import android.content.Intent; 5 import android.net.ConnectivityManager; 6 import android.net.NetworkInfo; 7  8 //跟网络相关的工具类 9 public class NetUtils10 {11     private NetUtils()12     {13         /* cannot be instantiated */14         throw new UnsupportedOperationException("cannot be instantiated");15     }16 17     /**18      * 判断网络是否连接19      * 20      * @param context21      * @return22      */23     public static boolean isConnected(Context context)24     {25 26         ConnectivityManager connectivity = (ConnectivityManager) context27                 .getSystemService(Context.CONNECTIVITY_SERVICE);28 29         if (null != connectivity)30         {31 32             NetworkInfo info = connectivity.getActiveNetworkInfo();33             if (null != info && info.isConnected())34             {35                 if (info.getState() == NetworkInfo.State.CONNECTED)36                 {37                     return true;38                 }39             }40         }41         return false;42     }43 44     /**45      * 判断是否是wifi连接46      */47     public static boolean isWifi(Context context)48     {49         ConnectivityManager cm = (ConnectivityManager) context50                 .getSystemService(Context.CONNECTIVITY_SERVICE);51 52         if (cm == null)53             return false;54         return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;55 56     }57 58     /**59      * 打开网络设置界面60      */61     public static void openSetting(Activity activity)62     {63         Intent intent = new Intent("/");64         ComponentName cm = new ComponentName("com.android.settings",65                 "com.android.settings.WirelessSettings");66         intent.setComponent(cm);67         intent.setAction("android.intent.action.VIEW");68         activity.startActivityForResult(intent, 0);69     }70 71 }
View Code

七、屏幕操作辅助类

  1 import android.app.Activity;  2 import android.content.Context;  3 import android.graphics.Bitmap;  4 import android.graphics.Rect;  5 import android.util.DisplayMetrics;  6 import android.view.View;  7 import android.view.WindowManager;  8   9 //获得屏幕相关的辅助类 10 public class ScreenUtils 11 { 12     private ScreenUtils() 13     { 14         /* cannot be instantiated */ 15         throw new UnsupportedOperationException("cannot be instantiated"); 16     } 17  18     /** 19      * 获得屏幕高度 20      *  21      * @param context 22      * @return 23      */ 24     public static int getScreenWidth(Context context) 25     { 26         WindowManager wm = (WindowManager) context 27                 .getSystemService(Context.WINDOW_SERVICE); 28         DisplayMetrics outMetrics = new DisplayMetrics(); 29         wm.getDefaultDisplay().getMetrics(outMetrics); 30         return outMetrics.widthPixels; 31     } 32  33     /** 34      * 获得屏幕宽度 35      *  36      * @param context 37      * @return 38      */ 39     public static int getScreenHeight(Context context) 40     { 41         WindowManager wm = (WindowManager) context 42                 .getSystemService(Context.WINDOW_SERVICE); 43         DisplayMetrics outMetrics = new DisplayMetrics(); 44         wm.getDefaultDisplay().getMetrics(outMetrics); 45         return outMetrics.heightPixels; 46     } 47  48     /** 49      * 获得状态栏的高度 50      *  51      * @param context 52      * @return 53      */ 54     public static int getStatusHeight(Context context) 55     { 56  57         int statusHeight = -1; 58         try 59         { 60             Class<?> clazz = Class.forName("com.android.internal.R$dimen"); 61             Object object = clazz.newInstance(); 62             int height = Integer.parseInt(clazz.getField("status_bar_height") 63                     .get(object).toString()); 64             statusHeight = context.getResources().getDimensionPixelSize(height); 65         } catch (Exception e) 66         { 67             e.printStackTrace(); 68         } 69         return statusHeight; 70     } 71  72     /** 73      * 获取当前屏幕截图,包含状态栏 74      *  75      * @param activity 76      * @return 77      */ 78     public static Bitmap snapShotWithStatusBar(Activity activity) 79     { 80         View view = activity.getWindow().getDecorView(); 81         view.setDrawingCacheEnabled(true); 82         view.buildDrawingCache(); 83         Bitmap bmp = view.getDrawingCache(); 84         int width = getScreenWidth(activity); 85         int height = getScreenHeight(activity); 86         Bitmap bp = null; 87         bp = Bitmap.createBitmap(bmp, 0, 0, width, height); 88         view.destroyDrawingCache(); 89         return bp; 90  91     } 92  93     /** 94      * 获取当前屏幕截图,不包含状态栏 95      *  96      * @param activity 97      * @return 98      */ 99     public static Bitmap snapShotWithoutStatusBar(Activity activity)100     {101         View view = activity.getWindow().getDecorView();102         view.setDrawingCacheEnabled(true);103         view.buildDrawingCache();104         Bitmap bmp = view.getDrawingCache();105         Rect frame = new Rect();106         activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);107         int statusBarHeight = frame.top;108 109         int width = getScreenWidth(activity);110         int height = getScreenHeight(activity);111         Bitmap bp = null;112         bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height113                 - statusBarHeight);114         view.destroyDrawingCache();115         return bp;116 117     }118 119 }
View Code

八、sd操作类

 1 import java.io.File; 2  3 import android.os.Environment; 4 import android.os.StatFs; 5  6 //SD卡相关的辅助类 7 public class SDCardUtils 8 { 9     private SDCardUtils()10     {11         /* cannot be instantiated */12         throw new UnsupportedOperationException("cannot be instantiated");13     }14 15     /**16      * 判断SDCard是否可用17      * 18      * @return19      */20     public static boolean isSDCardEnable()21     {22         return Environment.getExternalStorageState().equals(23                 Environment.MEDIA_MOUNTED);24 25     }26 27     /**28      * 获取SD卡路径29      * 30      * @return31      */32     public static String getSDCardPath()33     {34         return Environment.getExternalStorageDirectory().getAbsolutePath()35                 + File.separator;36     }37 38     /**39      * 获取SD卡的剩余容量 单位byte40      * 41      * @return42      */43     public static long getSDCardAllSize()44     {45         if (isSDCardEnable())46         {47             StatFs stat = new StatFs(getSDCardPath());48             // 获取空闲的数据块的数量49             long availableBlocks = (long) stat.getAvailableBlocks() - 4;50             // 获取单个数据块的大小(byte)51             long freeBlocks = stat.getAvailableBlocks();52             return freeBlocks * availableBlocks;53         }54         return 0;55     }56 57     /**58      * 获取指定路径所在空间的剩余可用容量字节数,单位byte59      * 60      * @param filePath61      * @return 容量字节 SDCard可用空间,内部存储可用空间62      */63     public static long getFreeBytes(String filePath)64     {65         // 如果是sd卡的下的路径,则获取sd卡可用容量66         if (filePath.startsWith(getSDCardPath()))67         {68             filePath = getSDCardPath();69         } else70         {// 如果是内部存储的路径,则获取内存存储的可用容量71             filePath = Environment.getDataDirectory().getAbsolutePath();72         }73         StatFs stat = new StatFs(filePath);74         long availableBlocks = (long) stat.getAvailableBlocks() - 4;75         return stat.getBlockSize() * availableBlocks;76     }77 78     /**79      * 获取系统存储路径80      * 81      * @return82      */83     public static String getRootDirectoryPath()84     {85         return Environment.getRootDirectory().getAbsolutePath();86     }87 88 89 }
View Code

九、存储类

  1 import java.lang.reflect.InvocationTargetException;  2 import java.lang.reflect.Method;  3 import java.util.Map;  4   5 import android.content.Context;  6 import android.content.SharedPreferences;  7   8 public class SPUtils  9 { 10     public SPUtils() 11     { 12         /* cannot be instantiated */ 13         throw new UnsupportedOperationException("cannot be instantiated"); 14     } 15  16     /** 17      * 保存在手机里面的文件名 18      */ 19     public static final String FILE_NAME = "share_data"; 20  21     /** 22      * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法 23      *  24      * @param context 25      * @param key 26      * @param object 27      */ 28     public static void put(Context context, String key, Object object) 29     { 30  31         SharedPreferences sp = context.getSharedPreferences(FILE_NAME, 32                 Context.MODE_PRIVATE); 33         SharedPreferences.Editor editor = sp.edit(); 34  35         if (object instanceof String) 36         { 37             editor.putString(key, (String) object); 38         } else if (object instanceof Integer) 39         { 40             editor.putInt(key, (Integer) object); 41         } else if (object instanceof Boolean) 42         { 43             editor.putBoolean(key, (Boolean) object); 44         } else if (object instanceof Float) 45         { 46             editor.putFloat(key, (Float) object); 47         } else if (object instanceof Long) 48         { 49             editor.putLong(key, (Long) object); 50         } else 51         { 52             editor.putString(key, object.toString()); 53         } 54  55         SharedPreferencesCompat.apply(editor); 56     } 57  58     /** 59      * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值 60      *  61      * @param context 62      * @param key 63      * @param defaultObject 64      * @return 65      */ 66     public static Object get(Context context, String key, Object defaultObject) 67     { 68         SharedPreferences sp = context.getSharedPreferences(FILE_NAME, 69                 Context.MODE_PRIVATE); 70  71         if (defaultObject instanceof String) 72         { 73             return sp.getString(key, (String) defaultObject); 74         } else if (defaultObject instanceof Integer) 75         { 76             return sp.getInt(key, (Integer) defaultObject); 77         } else if (defaultObject instanceof Boolean) 78         { 79             return sp.getBoolean(key, (Boolean) defaultObject); 80         } else if (defaultObject instanceof Float) 81         { 82             return sp.getFloat(key, (Float) defaultObject); 83         } else if (defaultObject instanceof Long) 84         { 85             return sp.getLong(key, (Long) defaultObject); 86         } 87  88         return null; 89     } 90  91     /** 92      * 移除某个key值已经对应的值 93      *  94      * @param context 95      * @param key 96      */ 97     public static void remove(Context context, String key) 98     { 99         SharedPreferences sp = context.getSharedPreferences(FILE_NAME,100                 Context.MODE_PRIVATE);101         SharedPreferences.Editor editor = sp.edit();102         editor.remove(key);103         SharedPreferencesCompat.apply(editor);104     }105 106     /**107      * 清除所有数据108      * 109      * @param context110      */111     public static void clear(Context context)112     {113         SharedPreferences sp = context.getSharedPreferences(FILE_NAME,114                 Context.MODE_PRIVATE);115         SharedPreferences.Editor editor = sp.edit();116         editor.clear();117         SharedPreferencesCompat.apply(editor);118     }119 120     /**121      * 查询某个key是否已经存在122      * 123      * @param context124      * @param key125      * @return126      */127     public static boolean contains(Context context, String key)128     {129         SharedPreferences sp = context.getSharedPreferences(FILE_NAME,130                 Context.MODE_PRIVATE);131         return sp.contains(key);132     }133 134     /**135      * 返回所有的键值对136      * 137      * @param context138      * @return139      */140     public static Map<String, ?> getAll(Context context)141     {142         SharedPreferences sp = context.getSharedPreferences(FILE_NAME,143                 Context.MODE_PRIVATE);144         return sp.getAll();145     }146 147     /**148      * 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类149      * 150      * @author zhy151      * 152      */153     private static class SharedPreferencesCompat154     {155         private static final Method sApplyMethod = findApplyMethod();156 157         /**158          * 反射查找apply的方法159          * 160          * @return161          */162         @SuppressWarnings({ "unchecked", "rawtypes" })163         private static Method findApplyMethod()164         {165             try166             {167                 Class clz = SharedPreferences.Editor.class;168                 return clz.getMethod("apply");169             } catch (NoSuchMethodException e)170             {171             }172 173             return null;174         }175 176         /**177          * 如果找到则使用apply执行,否则使用commit178          * 179          * @param editor180          */181         public static void apply(SharedPreferences.Editor editor)182         {183             try184             {185                 if (sApplyMethod != null)186                 {187                     sApplyMethod.invoke(editor);188                     return;189                 }190             } catch (IllegalArgumentException e)191             {192             } catch (IllegalAccessException e)193             {194             } catch (InvocationTargetException e)195             {196             }197             editor.commit();198         }199     }200 201 }
View Code

十、Toast操作类

 1 import android.content.Context; 2 import android.widget.Toast; 3  4  //Toast统一管理类 5 public class T 6 { 7  8     private T() 9     {10         /* cannot be instantiated */11         throw new UnsupportedOperationException("cannot be instantiated");12     }13 14     public static boolean isShow = true;15 16     /**17      * 短时间显示Toast18      * 19      * @param context20      * @param message21      */22     public static void showShort(Context context, CharSequence message)23     {24         if (isShow)25             Toast.makeText(context, message, Toast.LENGTH_SHORT).show();26     }27 28     /**29      * 短时间显示Toast30      * 31      * @param context32      * @param message33      */34     public static void showShort(Context context, int message)35     {36         if (isShow)37             Toast.makeText(context, message, Toast.LENGTH_SHORT).show();38     }39 40     /**41      * 长时间显示Toast42      * 43      * @param context44      * @param message45      */46     public static void showLong(Context context, CharSequence message)47     {48         if (isShow)49             Toast.makeText(context, message, Toast.LENGTH_LONG).show();50     }51 52     /**53      * 长时间显示Toast54      * 55      * @param context56      * @param message57      */58     public static void showLong(Context context, int message)59     {60         if (isShow)61             Toast.makeText(context, message, Toast.LENGTH_LONG).show();62     }63 64     /**65      * 自定义显示Toast时间66      * 67      * @param context68      * @param message69      * @param duration70      */71     public static void show(Context context, CharSequence message, int duration)72     {73         if (isShow)74             Toast.makeText(context, message, duration).show();75     }76 77     /**78      * 自定义显示Toast时间79      * 80      * @param context81      * @param message82      * @param duration83      */84     public static void show(Context context, int message, int duration)85     {86         if (isShow)87             Toast.makeText(context, message, duration).show();88     }89 90 }
View Code

十一、操作图片类

  1 import java.io.BufferedReader;  2 import java.io.ByteArrayOutputStream;  3 import java.io.File;  4 import java.io.FileInputStream;  5 import java.io.IOException;  6 import java.io.InputStream;  7 import java.io.InputStreamReader;  8 import java.lang.ref.WeakReference;  9  10 import android.app.Activity; 11 import android.content.Context; 12 import android.graphics.Bitmap; 13 import android.graphics.BitmapFactory; 14 import android.graphics.Matrix; 15 import android.graphics.Bitmap.CompressFormat; 16 import android.graphics.Typeface; 17 import android.net.ConnectivityManager; 18 import android.net.NetworkInfo.State; 19 import android.util.Base64; 20 import android.view.View; 21 import android.view.ViewGroup; 22 import android.view.ViewGroup.LayoutParams; 23 import android.widget.Button; 24 import android.widget.EditText; 25 import android.widget.TextView; 26  27 public class ToolFor9Ge  28 { 29     // 缩放/裁剪图片 30      public static Bitmap zoomImg(Bitmap bm, int newWidth ,int newHeight) 31      {  32          // 获得图片的宽高 33          int width = bm.getWidth(); 34          int height = bm.getHeight(); 35          // 计算缩放比例 36          float scaleWidth = ((float) newWidth) / width; 37          float scaleHeight = ((float) newHeight) / height; 38          // 取得想要缩放的matrix参数 39          Matrix matrix = new Matrix(); 40          matrix.postScale(scaleWidth, scaleHeight); 41          // 得到新的图片 42          Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true); 43          return newbm; 44      } 45       46      // 判断有无网络链接 47      public static boolean checkNetworkInfo(Context mContext) { 48            ConnectivityManager conMan = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 49            State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 50            State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 51            if (mobile == State.CONNECTED || mobile == State.CONNECTING) 52               return true; 53            if (wifi == State.CONNECTED || wifi == State.CONNECTING) 54               return true; 55            return false; 56      } 57       58      // 从路径获取文件名 59      public static String getFileName(String pathandname){  60          int start=pathandname.lastIndexOf("/");   61          int end=pathandname.lastIndexOf(".");   62          if(start!=-1 && end!=-1){   63              return pathandname.substring(start+1,end);     64          }else{   65              return null;   66          }              67      } 68       69      // 通过路径生成Base64文件 70      public static String getBase64FromPath(String path) 71      { 72          String base64=""; 73          try 74          { 75              File file = new File(path); 76              byte[] buffer = new byte[(int) file.length() + 100];   77             @SuppressWarnings("resource") 78             int length = new FileInputStream(file).read(buffer);   79              base64 = Base64.encodeToString(buffer, 0, length,  Base64.DEFAULT); 80          } 81          catch (IOException e) { 82             e.printStackTrace(); 83         } 84          return base64; 85      } 86       87      //通过文件路径获取到bitmap 88      public static Bitmap getBitmapFromPath(String path, int w, int h) { 89         BitmapFactory.Options opts = new BitmapFactory.Options(); 90         // 设置为ture只获取图片大小 91         opts.inJustDecodeBounds = true; 92         opts.inPreferredConfig = Bitmap.Config.ARGB_8888; 93         // 返回为空 94         BitmapFactory.decodeFile(path, opts); 95         int width = opts.outWidth; 96         int height = opts.outHeight; 97         float scaleWidth = 0.f, scaleHeight = 0.f; 98         if (width > w || height > h) { 99             // 缩放100             scaleWidth = ((float) width) / w;101             scaleHeight = ((float) height) / h;102         }103         opts.inJustDecodeBounds = false;104         float scale = Math.max(scaleWidth, scaleHeight);105         opts.inSampleSize = (int)scale;106         WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));107         return Bitmap.createScaledBitmap(weak.get(), w, h, true);108     }109      110      //把bitmap转换成base64111      public static String getBase64FromBitmap(Bitmap bitmap, int bitmapQuality)112      {113          ByteArrayOutputStream bStream = new ByteArrayOutputStream();114          bitmap.compress(CompressFormat.PNG, bitmapQuality, bStream);115          byte[] bytes = bStream.toByteArray();116          return Base64.encodeToString(bytes, Base64.DEFAULT);117      }118      119      //把base64转换成bitmap120      public static Bitmap getBitmapFromBase64(String string)121      {122          byte[] bitmapArray = null;123          try {124          bitmapArray = Base64.decode(string, Base64.DEFAULT);125          } catch (Exception e) {126          e.printStackTrace();127          }128          return BitmapFactory.decodeByteArray(bitmapArray, 0,bitmapArray.length);129      }130      131      //把Stream转换成String132      public static String convertStreamToString(InputStream is) {133          BufferedReader reader = new BufferedReader(new InputStreamReader(is));134             StringBuilder sb = new StringBuilder();135             String line = null;136 137             try {138                 while ((line = reader.readLine()) != null) {139                     sb.append(line + "/n");140                 }141             } catch (IOException e) {142                 e.printStackTrace();143             } finally {144                 try {145                     is.close();146                 } catch (IOException e) {147                     e.printStackTrace();148                 }149             }150             return sb.toString();    151      }    152      153      // 修改整个界面所有控件的字体154      public static void changeFonts(ViewGroup root,String path, Activity act) {  155         //path是字体路径156          Typeface tf = Typeface.createFromAsset(act.getAssets(),path);  157         for (int i = 0; i < root.getChildCount(); i++) {  158             View v = root.getChildAt(i); 159             if (v instanceof TextView) {  160                ((TextView) v).setTypeface(tf);  161             } else if (v instanceof Button) {  162                ((Button) v).setTypeface(tf);  163             } else if (v instanceof EditText) {  164                ((EditText) v).setTypeface(tf);  165             } else if (v instanceof ViewGroup) {  166                changeFonts((ViewGroup) v, path,act);  167             } 168         }  169      }170      171      // 修改整个界面所有控件的字体大小172       public static void changeTextSize(ViewGroup root,int size, Activity act) {  173          for (int i = 0; i < root.getChildCount(); i++) {  174              View v = root.getChildAt(i);  175              if (v instanceof TextView) {  176                 ((TextView) v).setTextSize(size);177              } else if (v instanceof Button) {  178                 ((Button) v).setTextSize(size);179              } else if (v instanceof EditText) {  180                 ((EditText) v).setTextSize(size);  181              } else if (v instanceof ViewGroup) {  182                 changeTextSize((ViewGroup) v,size,act);  183              }  184          }  185       }186       187       // 不改变控件位置,修改控件大小188     public static void changeWH(View v,int W,int H)189     {190         LayoutParams params = (LayoutParams)v.getLayoutParams();191         params.width = W;192         params.height = H;193         v.setLayoutParams(params);194     }195     196     // 修改控件的高197     public static void changeH(View v,int H)198     {199         LayoutParams params = (LayoutParams)v.getLayoutParams();200         params.height = H;201         v.setLayoutParams(params);202     }203         204 205 }
View Code

以上代码也是借鉴他人成果,此处展示仅为学习交流。

 

摘录android工具类