一、自定义ActionBar

  1. public class ActionBarTool {
  2. public static void setActionBarLayout(Activity act,Context context,int layoutId){//前两个参数一般情况下都可以填this,第三个参数为自定义View的Id
  3. ActionBar actionBar = act.getActionBar();
  4. if( null != actionBar ){
  5. actionBar.setDisplayShowHomeEnabled(false);//是否显示左上角的应用图标
  6. actionBar.setDisplayShowCustomEnabled(true);//是否使用自定义标题栏
  7. LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  8. View v = inflator.inflate(layoutId, null);//填充自定义布局
  9. ActionBar.LayoutParams layout = new ActionBar.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
  10. actionBar.setCustomView(v,layout);//把自定义View设置成ActionBar
  11. }
  12. }
  13. }

二、系统信息工具类

  1. public class SystemInfoUtils {
  2. public static int getRunningAppProcesses(Context context) {// 得到当前系统内运行的app进程数量
  3. ActivityManager am = (ActivityManager) context
  4. .getSystemService(Context.ACTIVITY_SERVICE);
  5. List<RunningAppProcessInfo> appInfos = am.getRunningAppProcesses();
  6. return appInfos.size();
  7. }
  8.  
  9. public static List<HashMap<String, Object>> getAppInfo(Context context) {// 得到非系统应用的app信息
  10. List<HashMap<String, Object>> appInfos = new ArrayList<HashMap<String, Object>>();
  11. HashMap<String, Object> map = null;
  12. List<PackageInfo> packages = context.getPackageManager()
  13. .getInstalledPackages(0);// 参数传入0表示过滤权限,因为可能有的手机不让你获取应用信息
  14. for (PackageInfo temp : packages) {
  15. if ((temp.applicationInfo.flags & temp.applicationInfo.FLAG_SYSTEM) == 0) {
  16. // 非系统应用
  17. // 得到应用的名称
  18. String appName = temp.applicationInfo.loadLabel(
  19. context.getPackageManager()).toString();
  20. // 得到应用图标
  21. Drawable appIcon = temp.applicationInfo.loadIcon(context
  22. .getPackageManager());
  23. // 得到应用最后一次更新的时间
  24. long lastUpdateTime = temp.lastUpdateTime;
  25. // 得到应用的包名
  26. String packageName = temp.packageName;
  27. // 得到应用的版本信息
  28. String versionName = temp.versionName;
  29. map = new HashMap<String, Object>();
  30. map.put("appName", appName);
  31. map.put("appIcon", appIcon);
  32. map.put("lastUpdateTime", lastUpdateTime);
  33. map.put("packageName", packageName);
  34. map.put("versionName", versionName);
  35. appInfos.add(map);// 把应用信息加入集合中返回
  36. map = null;
  37. } else {
  38. // 系统应用
  39. }
  40. }
  41. return appInfos;
  42. }
  43.  
  44. // 获取sd卡容量
  45. public static String getSdSize(Context context) {
  46. String totalStr = null, availStr = null;
  47. if (Environment.getExternalStorageState().equals(
  48. Environment.MEDIA_MOUNTED)) {// 判断是否检测到sd卡
  49. File path = Environment.getExternalStorageDirectory();
  50. StatFs stat = new StatFs(path.getPath());
  51.  
  52. long blockSize = stat.getBlockSizeLong();
  53. long availableBlocks = stat.getAvailableBlocksLong();
  54. long totalBlocks = stat.getBlockCountLong();
  55.  
  56. long totalSize = blockSize * totalBlocks;
  57. long availSize = blockSize * availableBlocks;
  58.  
  59. totalStr = Formatter.formatFileSize(context, totalSize);
  60. availStr = Formatter.formatFileSize(context, availSize);
  61.  
  62. } else
  63. Toast.makeText(context, "没有检测到SD卡,请检查是否正确插入", Toast.LENGTH_SHORT)
  64. .show();
  65. return "SD卡总容量为:" + totalStr + "可用为:" + availStr;
  66. }
  67.  
  68. // 获取手机内存
  69. public static String getRomSave(Context context) {
  70. String totalStr = null, availStr = null;
  71. File path = Environment.getDataDirectory();
  72. StatFs stat = new StatFs(path.getPath());// 得到手机内存的路径
  73.  
  74. long blockSize = stat.getBlockSizeLong();
  75. long availableBlocks = stat.getAvailableBlocksLong();
  76. long totalBlocks = stat.getBlockCountLong();
  77.  
  78. long totalSize = blockSize * totalBlocks;
  79. long availSize = blockSize * availableBlocks;
  80.  
  81. totalStr = Formatter.formatFileSize(context, totalSize);
  82. availStr = Formatter.formatFileSize(context, availSize);
  83.  
  84. return "手机内存总大小为:" + totalStr + "可用空间为:" + availStr;
  85. }
  86. }

三、网络相关工具类

  1. public class NetworkUtils {
  2. // 判断当前网络是否可用
  3. public static boolean networkIsConnect(Context context) {
  4. ConnectivityManager conn = (ConnectivityManager) context
  5. .getSystemService(Context.CONNECTIVITY_SERVICE);
  6. NetworkInfo info = conn.getActiveNetworkInfo();
  7. if (info != null && info.isConnected()) {
  8. return true;
  9. } else {
  10. return false;
  11. }
  12. }
  13.  
  14. // 判断当前连接的网络是否是wifi,并得到连接当前Wifi的信息
  15. public static boolean networkIsWifi(Context context) {
  16. ConnectivityManager conn = (ConnectivityManager) context
  17. .getSystemService(Context.CONNECTIVITY_SERVICE);
  18. NetworkInfo info = conn.getActiveNetworkInfo();
  19. if (info != null && info.isConnected()
  20. && info.getType() == ConnectivityManager.TYPE_WIFI) {
  21. WifiManager wifiManager = (WifiManager) context
  22. .getSystemService(Context.WIFI_SERVICE);
  23. WifiInfo wifiInfo = wifiManager.getConnectionInfo();
  24. Toast.makeText(context, "连接的wifi网络的id为:"+wifiInfo.getNetworkId(), Toast.LENGTH_SHORT).show();
  25. return true;
  26. } else {
  27. return false;
  28. }
  29. }
  30.  
  31. // 是否打开Wifi
  32. public static void setWifiEnabled(Context context, boolean enabled) {
  33. WifiManager wifiManager = (WifiManager) context
  34. .getSystemService(Context.WIFI_SERVICE);
  35. if (enabled) {
  36. wifiManager.setWifiEnabled(true);
  37. } else {
  38. wifiManager.setWifiEnabled(false);
  39. }
  40. }
  41.  
  42. }

四、Px与Dp转化工具类

  1. public class DensityUtils {
  2. public static int Dp2Px(Context context, float dp) {
  3. final float scale = context.getResources().getDisplayMetrics().density;
  4. return (int) (dp * scale + 0.5f);
  5. }
  6.  
  7. public static int Px2Dp(Context context, float px) {
  8. final float scale = context.getResources().getDisplayMetrics().density;
  9. return (int) (px / scale + 0.5f);
  10. }
  11. }

五、震动工具类

  1. public class VibratorUtil {
  2.  
  3. /**
  4. * long milliseconds :震动的时长,单位是毫秒
  5. * long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒
  6. * boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
  7. */
  8. public static void Vibrate(final Context context) {
  9. long milliseconds = 100;
  10. Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
  11. vib.vibrate(milliseconds);
  12. }
  13. public static void Vibrate(final Context context, long milliseconds) {
  14. Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
  15. vib.vibrate(milliseconds);
  16. }
  17. public static void Vibrate(final Context context, long[] pattern,boolean isRepeat) {
  18. Vibrator vib = (Vibrator) context.getSystemService(Service.VIBRATOR_SERVICE);
  19. vib.vibrate(pattern, isRepeat ? 1 : -1);//-1为反复震动
  20. }
  21.  
  22. }

——持续更新......



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. [Noi2016]区间

    题目描述 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置.换句话说,就是使得存在一个 x,使得对于每一 ...

  2. C语言程序设计实验第四次作业

    (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...

  3. 判断是否是IE9浏览器的最短语句 var ie=!-[1,]

    没错,上面这个语句就可以判断浏览器是不是IE9以下的.why?1.[1,]在现代浏览器(ie包括ie9及以上)会被转换成[1], 而ie9以下就会转换成[1,undefined].2.分别对[1],和 ...

  4. 643. Maximum Average Subarray

    Given an array consisting of \(n\) integers, find the contiguous subarray of given length \(k\) that ...

  5. echarts——各个配置项详细说明总结

      前  言    最近做了个关于各种图表的项目,用到了echarts , 关于各个配置项刚开始用好多都不懂,有些地方需要改不知道改哪个参数,就在网上查了各种,总结规整了一下,跟大家分享学习一下.(e ...

  6. 关于centos版本安装ethereum钱包

    安装go wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz --no-check-certificatetar -zxvf ...

  7. Kafka生产者-向Kafka中写入数据

    (1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复.延迟以及吞吐量的要求.不同场景对Kafka生产者的API使用和配置会有直接的影响. 例子1:信用卡事务处理系统,不允 ...

  8. grpc的服务注册与发现及负载

    参考文章: (1)https://segmentfault.com/a/1190000008672912 (2)https://grpc.io/docs/ (3)https://github.com/ ...

  9. Git-gitblit-Tortoisegit 搭建Windows Git本地服务器

    1.Gitblit安装 1.1.Gitblit简介 Git在版本控制领域可谓是深受程序员喜爱.对于开源的项目,可以免费托管到GitHub上面,相当的方便.但是私有项目托管到GitHub会收取相当昂贵的 ...

  10. window环境搭建zookeeper,kafka集群

    为了演示集群的效果,这里准备一台虚拟机(window 7),在虚拟机中搭建了单IP多节点的zookeeper集群(多IP节点的也是同理的),并且在本机(win 7)和虚拟机中都安装了kafka. 前期 ...