Android中常用開發工具類—持續更新...

來源:互聯網
上載者:User

Android中常用開發工具類—持續更新...

一、自訂ActionBar

 

public class ActionBarTool {public static void setActionBarLayout(Activity act,Context context,int layoutId){//前兩個參數一般情況下都可以填this,第三個參數為自訂View的Id    ActionBar actionBar = act.getActionBar();    if( null != actionBar ){        actionBar.setDisplayShowHomeEnabled(false);//是否顯示左上方的應用表徵圖        actionBar.setDisplayShowCustomEnabled(true);//是否使用自訂標題列        LayoutInflater inflator = (LayoutInflater)   context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        View v = inflator.inflate(layoutId, null);//填充自訂布局        ActionBar.LayoutParams layout = new ActionBar.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);        actionBar.setCustomView(v,layout);//把自訂View設定成ActionBar    }}}

 

二、系統資訊工具類

 

public class SystemInfoUtils {public static int getRunningAppProcesses(Context context) {// 得到當前系統內啟動並執行app進程數量ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List appInfos = am.getRunningAppProcesses();return appInfos.size();}public static List> getAppInfo(Context context) {// 得到非系統應用的app資訊List> appInfos = new ArrayList>();HashMap map = null;List packages = context.getPackageManager().getInstalledPackages(0);// 參數傳入0表示過濾許可權,因為可能有的手機不讓你擷取應用資訊for (PackageInfo temp : packages) {if ((temp.applicationInfo.flags & temp.applicationInfo.FLAG_SYSTEM) == 0) {// 非系統應用// 得到應用的名稱String appName = temp.applicationInfo.loadLabel(context.getPackageManager()).toString();// 得到應用表徵圖Drawable appIcon = temp.applicationInfo.loadIcon(context.getPackageManager());// 得到應用最後一次更新的時間long lastUpdateTime = temp.lastUpdateTime;// 得到應用的包名String packageName = temp.packageName;// 得到應用的版本資訊String versionName = temp.versionName;map = new HashMap();map.put(appName, appName);map.put(appIcon, appIcon);map.put(lastUpdateTime, lastUpdateTime);map.put(packageName, packageName);map.put(versionName, versionName);appInfos.add(map);// 把應用資訊加入集合中返回map = null;} else {// 系統應用}}return appInfos;}// 擷取sd卡容量public static String getSdSize(Context context) {String totalStr = null, availStr = null;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 判斷是否檢測到sd卡File path = Environment.getExternalStorageDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSizeLong();long availableBlocks = stat.getAvailableBlocksLong();long totalBlocks = stat.getBlockCountLong();long totalSize = blockSize * totalBlocks;long availSize = blockSize * availableBlocks;totalStr = Formatter.formatFileSize(context, totalSize);availStr = Formatter.formatFileSize(context, availSize);} elseToast.makeText(context, 沒有檢測到SD卡,請檢查是否正確插入, Toast.LENGTH_SHORT).show();return SD卡總容量為: + totalStr + 可用為: + availStr;}// 擷取手機記憶體public static String getRomSave(Context context) {String totalStr = null, availStr = null;File path = Environment.getDataDirectory();StatFs stat = new StatFs(path.getPath());// 得到手機記憶體的路徑long blockSize = stat.getBlockSizeLong();long availableBlocks = stat.getAvailableBlocksLong();long totalBlocks = stat.getBlockCountLong();long totalSize = blockSize * totalBlocks;long availSize = blockSize * availableBlocks;totalStr = Formatter.formatFileSize(context, totalSize);availStr = Formatter.formatFileSize(context, availSize);return 手機記憶體總大小為: + totalStr + 可用空間為: + availStr;}}
三、網路相關工具類
public class NetworkUtils {// 判斷當前網路是否可用public static boolean networkIsConnect(Context context) {ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = conn.getActiveNetworkInfo();if (info != null && info.isConnected()) {return true;} else {return false;}}// 判斷當前串連的網路是否是wifi,並得到串連當前Wifi的資訊public static boolean networkIsWifi(Context context) {ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = conn.getActiveNetworkInfo();if (info != null && info.isConnected()&& info.getType() == ConnectivityManager.TYPE_WIFI) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();Toast.makeText(context, 串連的wifi網路的id為:+wifiInfo.getNetworkId(), Toast.LENGTH_SHORT).show();return true;} else {return false;}}// 是否開啟Wifipublic static void setWifiEnabled(Context context, boolean enabled) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);if (enabled) {wifiManager.setWifiEnabled(true);} else {wifiManager.setWifiEnabled(false);}}}
四、Px與Dp轉化工具類

 

 

public class DensityUtils {public static int Dp2Px(Context context, float dp) {     final float scale = context.getResources().getDisplayMetrics().density;     return (int) (dp * scale + 0.5f); }  public static int Px2Dp(Context context, float px) {     final float scale = context.getResources().getDisplayMetrics().density;     return (int) (px / scale + 0.5f); } }
五、震動工具類

 

 

public class VibratorUtil {          /**      * long milliseconds :震動的時間長度,單位是毫秒      * long[] pattern  :自訂震動模式 。數組中數位含義依次是[靜止時間長度,震動時間長度,靜止時間長度,震動時間長度。。。]時間長度的單位是毫秒      * boolean isRepeat : 是否反覆震動,如果是true,反覆震動,如果是false,只震動一次      */   public static void Vibrate(final Context context) {  long milliseconds = 100;         Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);            vib.vibrate(milliseconds);     }      public static void Vibrate(final Context context, long milliseconds) {               Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);               vib.vibrate(milliseconds);        }        public static void Vibrate(final Context context, long[] pattern,boolean isRepeat) {               Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);               vib.vibrate(pattern, isRepeat ? 1 : -1);//-1為反覆震動        }     }  
 


 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.