編輯:關於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);
} else
Toast.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;
}
}
// 是否打開Wifi
public 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為反復震動
}
}
Android pdf viewer在android studio應用問題說明詳解
之前一直是做.NET開發的,最近需要弄一個新聞app,能力有限,只能借助HTML5 WebAPP+android studio來完成這項工作。 android studi
win7配置adb環境變量的方法步驟
下面是配置Android開發ADB環境變量的操作步驟。工具/原料win7系統電腦+Android SDK方法/步驟1.首先右擊計算機——屬性——高級系統設置——環境變量;
Android開發環境搭建之Eclipes (Mars)
一、Eclipes 簡介:Eclipse 是一個開放源代碼的、基於Java的可擴展開發平台。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。&nbs
Android開發之單元測試(一)
Android開發之單元測試(一) 請尊重他人的勞動成果,轉載請注明出處 : Android開發之單元測試(一) http://blog.csdn.net/fengy