一、自定义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<RunningAppProcessInfo> appInfos = am.getRunningAppProcesses();
		return appInfos.size();
	}

	public static List<HashMap<String, Object>> getAppInfo(Context context) {// 得到非系统应用的app信息
		List<HashMap<String, Object>> appInfos = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> map = null;
		List<PackageInfo> 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<String, Object>();
				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中常用开发工具类—持续更新...的更多相关文章

  1. [Tool] 常用开发工具注册码(持续更新)

    OS win10 激活 命令行 打开命令提示符( 管理员 ) 输入 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX 回车 再输入 slmgr /skms kms.xs ...

  2. Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统

    Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...

  3. Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...

  4. java中常用的工具类(一)

    我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...

  5. Android开发中常用的库总结(持续更新)

    这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...

  6. android 编译环境 & 开发教程 【持续更新】

    一. 优秀博文推荐 1.ubuntu 搭建 android源码编译环境 ubuntu14.04LTS android 源码编译环境的搭建 2.开源网站 2.android 开源 网站 2015最流行的 ...

  7. java中常用的工具类(三)

    继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类       ...

  8. java中常用的工具类(二)

    下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil           Java   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  9. JS中常用的工具类

    一.日期工具类 /** * 日期时间工具类 * @type {{dateFormat}} */ var DateTime = function () { var patterns = { PATTER ...

随机推荐

  1. NOIP2014-5-24模拟赛

    Problem 1 护花(flower.cpp/c/pas) [题目描述] 约翰留下他的N(N<=100000)只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时 ...

  2. 例10-5 uva12716

    题意:gcd(a,b) = a^b,( 1≤ a , b ≤ n) 思路: ① a^b = c, 所以 a^c = b,而且c是a的约数,枚举a,c,再gcd判断 ② 打表可知 a-b = c,而且a ...

  3. 利用 socket 发送 get/post 请求

    思路:利用 fsockopen 函数与要请求的主机建立一个通信通道,再将请求行.头信息.主体信息通过这个通道传输给主机实现请求的发送.利用这种方式发送 get 请求就是常说的小偷程序,发送 post ...

  4. jsvascript === 和==的区别

    ==   用于比较   判断 两者相等      ==在比较的时候可以转自动换数据类型 ===用于严格比较   判断两者严格相等     ===严格比较,不会进行自动转换,要求进行比较的操作数必须类型 ...

  5. SSM框架原理,作用及使用方法(非原创)

    原帖:地址https://blog.csdn.net/bieleyang/article/details/77862042 如有侵权请联系删除 作用: SSM框架是spring MVC ,spring ...

  6. spring的@Transactional(rollbackFor=Exception.class)的使用

    Spring框架的事务基础架构代码将默认地只在抛出运行时和unchecked exceptions时才标识事务回滚. 也就是说,当抛出个RuntimeException 或其子类例的实例时.(Erro ...

  7. C语言实现的排序

    冒泡排序 比较相邻的两个元素,若顺序不对,则将其调换 通过一遍排序,较大的数会排到最后(沉到底部) 两层循环,外层循环控制遍数,内层循环控制每一遍内的排序. 完整代码: #include<std ...

  8. 详解linux进程间通信-信号

    前言:之前说看<C++ Primer >暂时搁浅一下,迷上公司大神写的代码,想要明白,主要是socket.进程间通信! 知道进程间通信:信号.信号量.管道.消息队列.共享内存(共享存储), ...

  9. Windows转Linux总结(附带常用Linux命令-LinuxMint)

    这是我在Linux系统下写的第一篇博客,花了一周的时间从Windows系统转到Linux并且可以完成日常操作,能在Linux系统下完成开发,运用各种开发工具,写各种语言小程序和JavaEE. 经过这一 ...

  10. css文本超出省略号

    终于完成了项目了,今天我就分享自己在项目中比较实用的一些功能的实现,第一个就是纯css文本超出省略号 /* 文本单行超出省略号 */ .textels { overflow: hidden; text ...