摘录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         try
23         {
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 context
40      * @return 当前应用的版本名称
41      */
42     public static String getVersionName(Context context)
43     {
44         try
45         {
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 }

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

 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转px
15      *
16      * @param context
17      * @param val
18      * @return
19      */
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转px
28      *
29      * @param context
30      * @param val
31      * @return
32      */
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转dp
41      *
42      * @param context
43      * @param pxVal
44      * @return
45      */
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转sp
54      *
55      * @param fontScale
56      * @param pxVal
57      * @return
58      */
59     public static float px2sp(Context context, float pxVal)
60     {
61         return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
62     }
63
64 }

三、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             } else
117             {
118                 throw new RuntimeException(" responseCode is not 200 ... ");
119             }
120
121         } catch (Exception e)
122         {
123             e.printStackTrace();
124         } finally
125         {
126             try
127             {
128                 if (is != null)
129                     is.close();
130             } catch (IOException e)
131             {
132             }
133             try
134             {
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 url
151      *            发送请求的 URL
152      * @param param
153      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
154      * @return 所代表远程资源的响应结果
155      * @throws Exception
156      */
157     public static String doPost(String url, String param)
158     {
159         PrintWriter out = null;
160         BufferedReader in = null;
161         String result = "";
162         try
163         {
164             URL realUrl = new URL(url);
165             // 打开和URL之间的连接
166             HttpURLConnection conn = (HttpURLConnection) realUrl
167                     .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         finally
205         {
206             try
207             {
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 }

四、打开关闭软键盘

 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) mContext
17                 .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 }

五、统一管理类

 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 }

六、网络工具类

 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 NetUtils
10 {
11     private NetUtils()
12     {
13         /* cannot be instantiated */
14         throw new UnsupportedOperationException("cannot be instantiated");
15     }
16
17     /**
18      * 判断网络是否连接
19      *
20      * @param context
21      * @return
22      */
23     public static boolean isConnected(Context context)
24     {
25
26         ConnectivityManager connectivity = (ConnectivityManager) context
27                 .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) context
50                 .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 }

七、屏幕操作辅助类

  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, height
113                 - statusBarHeight);
114         view.destroyDrawingCache();
115         return bp;
116
117     }
118
119 }

八、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      * @return
19      */
20     public static boolean isSDCardEnable()
21     {
22         return Environment.getExternalStorageState().equals(
23                 Environment.MEDIA_MOUNTED);
24
25     }
26
27     /**
28      * 获取SD卡路径
29      *
30      * @return
31      */
32     public static String getSDCardPath()
33     {
34         return Environment.getExternalStorageDirectory().getAbsolutePath()
35                 + File.separator;
36     }
37
38     /**
39      * 获取SD卡的剩余容量 单位byte
40      *
41      * @return
42      */
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      * 获取指定路径所在空间的剩余可用容量字节数,单位byte
59      *
60      * @param filePath
61      * @return 容量字节 SDCard可用空间,内部存储可用空间
62      */
63     public static long getFreeBytes(String filePath)
64     {
65         // 如果是sd卡的下的路径,则获取sd卡可用容量
66         if (filePath.startsWith(getSDCardPath()))
67         {
68             filePath = getSDCardPath();
69         } else
70         {// 如果是内部存储的路径,则获取内存存储的可用容量
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      * @return
82      */
83     public static String getRootDirectoryPath()
84     {
85         return Environment.getRootDirectory().getAbsolutePath();
86     }
87
88
89 }

九、存储类

  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 context
110      */
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 context
124      * @param key
125      * @return
126      */
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 context
138      * @return
139      */
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 zhy
151      *
152      */
153     private static class SharedPreferencesCompat
154     {
155         private static final Method sApplyMethod = findApplyMethod();
156
157         /**
158          * 反射查找apply的方法
159          *
160          * @return
161          */
162         @SuppressWarnings({ "unchecked", "rawtypes" })
163         private static Method findApplyMethod()
164         {
165             try
166             {
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执行,否则使用commit
178          *
179          * @param editor
180          */
181         public static void apply(SharedPreferences.Editor editor)
182         {
183             try
184             {
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 }

十、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      * 短时间显示Toast
18      *
19      * @param context
20      * @param message
21      */
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      * 短时间显示Toast
30      *
31      * @param context
32      * @param message
33      */
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      * 长时间显示Toast
42      *
43      * @param context
44      * @param message
45      */
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      * 长时间显示Toast
54      *
55      * @param context
56      * @param message
57      */
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 context
68      * @param message
69      * @param duration
70      */
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 context
81      * @param message
82      * @param duration
83      */
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 }

十一、操作图片类

  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转换成base64
111      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转换成bitmap
120      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转换成String
132      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 }

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

时间: 2024-10-06 00:07:16

摘录android工具类的相关文章

android 工具类 数据库管理

数据库工具类,优雅的管理android中的sqlite package csdn.shimiso.eim.db; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; /** * SQLite数据库模板工具类 * *

android 工具类 DateUtil

提取了一些在开发过程中可能会用到的日期相关的函数作为工具类,供大家参考: /** * 日期操作工具类. * * @author shimiso */ public class DateUtil { private static final String FORMAT = "yyyy-MM-dd HH:mm:ss"; public static Date str2Date(String str) { return str2Date(str, null); } public static

【转载】android 工具类 DateUtil,可以用它方便的进行日期的操作

本文转载自:http://blog.csdn.net/xuduzhoud/article/details/27526177 全部代码如下: DateUtil.java package com.example.tset; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期操作工具类. * * @au

android 工具类之图片加工

1 /** 2 * 图片加工厂 3 * 4 * @author way 5 * 6 */ 7 public class ImageUtil { 8 /** 9 * 通过路径获取输入流 10 * 11 * @param path 12 * 路径 13 * @return 输入流 14 * @throws Exception 15 * 异常 16 */ 17 public static InputStream getRequest(String path) throws Exception { 18

android 工具类之SharePreference

1 /** 2 * SharedPreferences的一个工具类,调用setParam就能保存String, Integer, Boolean, Float, Long类型的参数 3 * 同样调用getParam就能获取到保存在手机里面的数据 4 * @author xiaanming 5 * 6 */ 7 public class SharedPreferencesUtils { 8 /** 9 * 保存在手机里面的文件名 10 */ 11 private static final Stri

【Android 工具类】经常使用工具类(方法)大全

收集经常使用的工具类或者方法: 1.获取手机分辨率 /** * 获取手机分辨率 */ public static String getDisplayMetrix(Context context) { if (Constant.Screen.SCREEN_WIDTH == 0 || Constant.Screen.SCREEN_HEIGHT == 0) { if (context != null) { int width = 0; int height = 0; SharedPreferences

[Android Pro] 常用的android工具类和库

reference to  : http://blog.csdn.net/lovexieyuan520/article/details/50614086 这篇博客主要记录我认为比较有用的Android开源框架或者工具,我会持续添加,推荐给大家 1.这里面包含了很多的工具类,包括数据校验工具类,文件操作工具类,汉字转拼音工具类等. https://github.com/jingle1267/android-utils 2.CWAC,这里面包含不少android开发中具有普遍用途的库 https:/

Android 工具类大全java文件

package com.clw.cosmax.utils; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncoding

Android工具类整理(1)检查是否有网络、检查SD卡是否存在

以下工具类主要用于: (1)检查是否有网络. (2)检查是否有WIFI. (3)检查是否有移动网络 import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class CommonUtils { /** 检查是否有网络 */ public static boolean isNetworkAvailable(Context conte