本文實例講述了Android開發中4個常用的工具類。分享給大家供大家參考,具體如下:
1、土司工具類(Toast管理)
/** * Toast統一管理類 * * @Project App_ZXing * @Package com.android.scan * @author chenlin * @version 1.0 * @Date 2013年7月6日 * @Note TODO */public class ToastUtil {  private ToastUtil() {    /* cannot be instantiated */    throw new UnsupportedOperationException("cannot be instantiated");  }  public static boolean isShow = true;  /**   * 短時間顯示Toast   *   * @param context   * @param message   */  public static void show(Context context, CharSequence message) {    if (isShow)      Toast.makeText(context, message, Toast.LENGTH_SHORT).show();  }  /**   * 短時間顯示Toast   *   * @param context   * @param message   */  public static void showShort(Context context, int message) {    if (isShow)      Toast.makeText(context, message, Toast.LENGTH_SHORT).show();  }  /**   * 長時間顯示Toast   *   * @param context   * @param message   */  public static void showLong(Context context, CharSequence message) {    if (isShow)      Toast.makeText(context, message, Toast.LENGTH_LONG).show();  }  /**   * 長時間顯示Toast   *   * @param context   * @param message   */  public static void showLong(Context context, int message) {    if (isShow)      Toast.makeText(context, message, Toast.LENGTH_LONG).show();  }  /**   * 自定義顯示Toast時間   *   * @param context   * @param message   * @param duration   */  public static void show(Context context, CharSequence message, int duration) {    if (isShow)      Toast.makeText(context, message, duration).show();  }  /**   * 自定義顯示Toast時間   *   * @param context   * @param message   * @param duration   */  public static void show(Context context, int message, int duration) {    if (isShow)      Toast.makeText(context, message, duration).show();  }}2、SharedPreferences工具類
/** * SharedPreferences封裝類SPUtils * @Project  App_ZXing * @Package  com.android.scan * @author   chenlin * @version  1.0 * @Date    2013年6月6日 * @Note    TODO */public class SPUtils {  /**   * 保存在手機里面的文件名   */  public static final String FILE_NAME = "share_data";  /**   * 保存數據的方法,我們需要拿到保存數據的具體類型,然后根據類型調用不同的保存方法   *   * @param context   * @param key   * @param object   */  public static void put(Context context, String key, Object object) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    SharedPreferences.Editor editor = sp.edit();    if (object instanceof String) {      editor.putString(key, (String) object);    } else if (object instanceof Integer) {      editor.putInt(key, (Integer) object);    } else if (object instanceof Boolean) {      editor.putBoolean(key, (Boolean) object);    } else if (object instanceof Float) {      editor.putFloat(key, (Float) object);    } else if (object instanceof Long) {      editor.putLong(key, (Long) object);    } else {      editor.putString(key, object.toString());    }    SharedPreferencesCompat.apply(editor);  }  /**   * 得到保存數據的方法,我們根據默認值得到保存的數據的具體類型,然后調用相對于的方法獲取值   *   * @param context   * @param key   * @param defaultObject   * @return   */  public static Object get(Context context, String key, Object defaultObject) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    if (defaultObject instanceof String) {      return sp.getString(key, (String) defaultObject);    } else if (defaultObject instanceof Integer) {      return sp.getInt(key, (Integer) defaultObject);    } else if (defaultObject instanceof Boolean) {      return sp.getBoolean(key, (Boolean) defaultObject);    } else if (defaultObject instanceof Float) {      return sp.getFloat(key, (Float) defaultObject);    } else if (defaultObject instanceof Long) {      return sp.getLong(key, (Long) defaultObject);    }    return null;  }  /**   * 移除某個key值已經對應的值   *   * @param context   * @param key   */  public static void remove(Context context, String key) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    SharedPreferences.Editor editor = sp.edit();    editor.remove(key);    SharedPreferencesCompat.apply(editor);  }  /**   * 清除所有數據   *   * @param context   */  public static void clear(Context context) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    SharedPreferences.Editor editor = sp.edit();    editor.clear();    SharedPreferencesCompat.apply(editor);  }  /**   * 查詢某個key是否已經存在   *   * @param context   * @param key   * @return   */  public static boolean contains(Context context, String key) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    return sp.contains(key);  }  /**   * 返回所有的鍵值對   *   * @param context   * @return   */  public static Map<String, ?> getAll(Context context) {    SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    return sp.getAll();  }  /**   * 創建一個解決SharedPreferencesCompat.apply方法的一個兼容類   *   * @author zhy   *   */  private static class SharedPreferencesCompat {    private static final Method sApplyMethod = findApplyMethod();    /**     * 反射查找apply的方法     *     * @return     */    @SuppressWarnings({ "unchecked", "rawtypes" })    private static Method findApplyMethod() {      try {        Class clz = SharedPreferences.Editor.class;        return clz.getMethod("apply");      } catch (NoSuchMethodException e) {      }      return null;    }    /**     * 如果找到則使用apply執行,否則使用commit     *     * @param editor     */    public static void apply(SharedPreferences.Editor editor) {      try {        if (sApplyMethod != null) {          sApplyMethod.invoke(editor);          return;        }      } catch (IllegalArgumentException e) {      } catch (IllegalAccessException e) {      } catch (InvocationTargetException e) {      }      editor.commit();    }  }}3、網絡工具類
/** * 跟網絡相關的工具類 * @Project  App_ZXing * @Package  com.android.scan * @author   chenlin * @version  1.0 * @Date    2013年6月8日 * @Note    TODO */public class NetUtils {  private NetUtils() {    /* cannot be instantiated */    throw new UnsupportedOperationException("cannot be instantiated");  }  /**   * 判斷網絡是否連接   *   * @param context   * @return   */  public static boolean isConnected(Context context) {    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    if (null != connectivity) {      NetworkInfo info = connectivity.getActiveNetworkInfo();      if (null != info && info.isConnected()) {        if (info.getState() == NetworkInfo.State.CONNECTED) {          return true;        }      }    }    return false;  }  /**   * 判斷是否是wifi連接   */  public static boolean isWifi(Context context) {    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    if (cm == null)      return false;    return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;  }  /**   * 打開網絡設置界面   */  public static void openSetting(Activity activity) {    Intent intent = new Intent("/");    ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");    intent.setComponent(cm);    intent.setAction("android.intent.action.VIEW");    activity.startActivityForResult(intent, 0);  }}4、獲得屏幕相關的輔助類
/** * 獲得屏幕相關的輔助類 * @Project  App_ZXing * @Package  com.android.scan * @author   chenlin * @version  1.0 * @Date    2013年6月6日 */public class ScreenUtils {  private ScreenUtils() {    /* cannot be instantiated */    throw new UnsupportedOperationException("cannot be instantiated");  }  /**   * 獲得屏幕高度   *   * @param context   * @return   */  public static int getScreenWidth(Context context) {    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);    DisplayMetrics outMetrics = new DisplayMetrics();    wm.getDefaultDisplay().getMetrics(outMetrics);    return outMetrics.widthPixels;  }  /**   * 獲得屏幕寬度   *   * @param context   * @return   */  public static int getScreenHeight(Context context) {    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);    DisplayMetrics outMetrics = new DisplayMetrics();    wm.getDefaultDisplay().getMetrics(outMetrics);    return outMetrics.heightPixels;  }  /**   * 獲得狀態欄的高度   *   * @param context   * @return   */  public static int getStatusHeight(Context context) {    int statusHeight = -1;    try {      Class<?> clazz = Class.forName("com.android.internal.R$dimen");      Object object = clazz.newInstance();      int height = Integer.parseInt(clazz.getField("status_bar_height").get(object).toString());      statusHeight = context.getResources().getDimensionPixelSize(height);    } catch (Exception e) {      e.printStackTrace();    }    return statusHeight;  }  /**   * 獲取當前屏幕截圖,包含狀態欄   *   * @param activity   * @return   */  public static Bitmap snapShotWithStatusBar(Activity activity) {    View view = activity.getWindow().getDecorView();    view.setDrawingCacheEnabled(true);    view.buildDrawingCache();    Bitmap bmp = view.getDrawingCache();    int width = getScreenWidth(activity);    int height = getScreenHeight(activity);    Bitmap bp = null;    bp = Bitmap.createBitmap(bmp, 0, 0, width, height);    view.destroyDrawingCache();    return bp;  }  /**   * 獲取當前屏幕截圖,不包含狀態欄   *   * @param activity   * @return   */  public static Bitmap snapShotWithoutStatusBar(Activity activity) {    View view = activity.getWindow().getDecorView();    view.setDrawingCacheEnabled(true);    view.buildDrawingCache();    Bitmap bmp = view.getDrawingCache();    Rect frame = new Rect();    activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);    int statusBarHeight = frame.top;    int width = getScreenWidth(activity);    int height = getScreenHeight(activity);    Bitmap bp = null;    bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height - statusBarHeight);    view.destroyDrawingCache();    return bp;  }}希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答