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 ...
随机推荐
- 模板 manacher算法
题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符串S 输出格 ...
- 亲戚(relative)
[题目背景] Y 家是世界上最大的家族,HJZ 是其中一员. 现在 Y 家人想要拍一张全家福,却发现这是一个十分复杂的问题. . . . . . [题目描述] Y 家一共有 n 人 其中每个人最多有一 ...
- [USACO14DEC]后卫马克Guard Mark
题目描述 FJ将飞盘抛向身高为H(1 <= H <= 1,000,000,000)的Mark,但是Mark 被N(2 <= N <= 20)头牛包围.牛们可以叠成一个牛塔,如果 ...
- 【bzoj4568 scoi2016】幸运数字
题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征. 一些旅行者希望 ...
- ●BZOJ 4453 cys就是要拿英魂!
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4453 题解: 后缀数组,离线询问,栈看了一堆题解才看懂,太弱啦 ~ 如果对于一个区间[l,r ...
- SpringCloud学习之快速搭建分布式配置
一. 关于spring-cloud中的分布式配置 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持.使用Config Server,您可以在所有环境中管理应用程序的 ...
- MySQl之最全且必会的sql语句
创建一个名称为mydb1的数据库,如果有mydb1数据库则直接使用,如果无则创建mydb1数据库 create database if not exists mydb1; create databas ...
- 怎样使用Secure CRT查看vcenter和esxi主机的日志文件(转)
对ESXI主机的日志管理对于故障诊断和合规性至关重要.Esxi主机的日志通过syslog工具进行管理的,在默认的情况下,日志文件存储在主机的scratch分区中(/scratch/log/).scra ...
- MyBatis 传入参数之parameterType
在MyBatis的select,insert,update,delete这些元素中都提到了parameterType这个属性.MyBatis现在使用parameterType有基本类型和JAVA复 ...
- OkHTTPClient
一,OKHttp介绍 okhttp是一个第三方类库,用于android中请求网络. 这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和Leak ...