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<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中常用开发工具类—持续更新...的更多相关文章
- [Tool] 常用开发工具注册码(持续更新)
OS win10 激活 命令行 打开命令提示符( 管理员 ) 输入 slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX 回车 再输入 slmgr /skms kms.xs ...
- Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
- Android 中替代 sharedpreferences 工具类的实现
Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...
- java中常用的工具类(一)
我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...
- Android开发中常用的库总结(持续更新)
这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...
- android 编译环境 & 开发教程 【持续更新】
一. 优秀博文推荐 1.ubuntu 搭建 android源码编译环境 ubuntu14.04LTS android 源码编译环境的搭建 2.开源网站 2.android 开源 网站 2015最流行的 ...
- java中常用的工具类(三)
继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- JS中常用的工具类
一.日期工具类 /** * 日期时间工具类 * @type {{dateFormat}} */ var DateTime = function () { var patterns = { PATTER ...
随机推荐
- [Noi2016]区间
题目描述 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置.换句话说,就是使得存在一个 x,使得对于每一 ...
- C语言程序设计实验第四次作业
(一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...
- 判断是否是IE9浏览器的最短语句 var ie=!-[1,]
没错,上面这个语句就可以判断浏览器是不是IE9以下的.why?1.[1,]在现代浏览器(ie包括ie9及以上)会被转换成[1], 而ie9以下就会转换成[1,undefined].2.分别对[1],和 ...
- 643. Maximum Average Subarray
Given an array consisting of \(n\) integers, find the contiguous subarray of given length \(k\) that ...
- echarts——各个配置项详细说明总结
前 言 最近做了个关于各种图表的项目,用到了echarts , 关于各个配置项刚开始用好多都不懂,有些地方需要改不知道改哪个参数,就在网上查了各种,总结规整了一下,跟大家分享学习一下.(e ...
- 关于centos版本安装ethereum钱包
安装go wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz --no-check-certificatetar -zxvf ...
- Kafka生产者-向Kafka中写入数据
(1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复.延迟以及吞吐量的要求.不同场景对Kafka生产者的API使用和配置会有直接的影响. 例子1:信用卡事务处理系统,不允 ...
- grpc的服务注册与发现及负载
参考文章: (1)https://segmentfault.com/a/1190000008672912 (2)https://grpc.io/docs/ (3)https://github.com/ ...
- Git-gitblit-Tortoisegit 搭建Windows Git本地服务器
1.Gitblit安装 1.1.Gitblit简介 Git在版本控制领域可谓是深受程序员喜爱.对于开源的项目,可以免费托管到GitHub上面,相当的方便.但是私有项目托管到GitHub会收取相当昂贵的 ...
- window环境搭建zookeeper,kafka集群
为了演示集群的效果,这里准备一台虚拟机(window 7),在虚拟机中搭建了单IP多节点的zookeeper集群(多IP节点的也是同理的),并且在本机(win 7)和虚拟机中都安装了kafka. 前期 ...