Android实用代码七段(五)
1、展开、收起状态栏
Object sbservice = ctx.getSystemService("statusbar");
try {
Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
Method collapse;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
collapse = statusBarManager.getMethod("collapsePanels");
} else {
collapse = statusBarManager.getMethod("collapse");
}
collapse.invoke(sbservice);
} catch (Exception e) {
e.printStackTrace();
}
}
public static final void expandStatusBar(Context ctx) {
Object sbservice = ctx.getSystemService("statusbar");
try {
Class<?> statusBarManager = Class.forName("android.app.StatusBarManager");
Method expand;
if (Build.VERSION.SDK_INT >= 17) {
expand = statusBarManager.getMethod("expandNotificationsPanel");
} else {
expand = statusBarManager.getMethod("expand");
}
expand.invoke(sbservice);
} catch (Exception e) {
e.printStackTrace();
}
}
用途:可用于点击Notifacation之后收起状态栏
2、 获取状态栏高度
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, statusBarHeight = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
statusBarHeight = context.getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
e1.printStackTrace();
}
return statusBarHeight;
}
3、ListView使用ViewHolder极简写法
SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag();
if (viewHolder == null) {
viewHolder = new SparseArray<View>();
convertView.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (childView == null) {
childView = convertView.findViewById(id);
viewHolder.put(id, childView);
}
return (T) childView;
}
用法:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_feed_item, parent, false);
}
ImageView thumnailView = getAdapterView(convertView, R.id.video_thumbnail);
ImageView avatarView = getAdapterView(convertView, R.id.user_avatar);
ImageView appIconView = getAdapterView(convertView, R.id.app_icon);
用起来非常简练,将ViewHolder隐于无形。
4、 设置Activity透明
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
说明:AppBaseTheme一般是你application指定的android:theme是啥这里就是啥,否则Activity内部的空间风格可能不一致。
用途:用于模拟Dialog效果,比如再Service中没法用Dialog,就可以用Activity来模拟
5、 代码切换全屏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
//切换到非全屏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
注意:切换到全屏时,底部的虚拟按键仍然是显示的。次方法可多次调用用于切换
用途:播放器界面经常会用到
6、调用开发者选项中显示触摸位置功能
设置1显示,设置0不显示。
7、获取设备上已安装并且可启动的应用列表
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, 0)
注意:使用getInstalledApplications会返回很多无法启动甚至没有图标的系统应用。ResolveInfo.activityInfo.applicationInfo也能取到你想要的数据。
系列
Android实用代码七段(一)
Android实用代码七段(二)
Android实用代码七段(三)
Android实用代码七段(四)
本文转自博客园农民伯伯的博客,原文链接:Android实用代码七段(五),如需转载请自行联系原博主。
Android实用代码七段(五)相关推荐
- 实用android 代码,Android 实用代码七段(一)
前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http ...
- Android实用代码七段(三)
前言 终于又攒了一篇出来,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http: ...
- Android实用代码七段(二)
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.获取应用程序下所有Acti ...
- Android实用代码(不定期更新)
Android实用代码七段(一) 一抹火焰 整理(不定期更新) 前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明: 欢迎转载,但请保留文章原始出处:) 博客园 ...
- android实用代码
Android实用代码七段(一) 前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...
- android 实用代码
android 实用代码 1. 精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ctx) ...
- Android实用代码大全
1. 精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ctx) { ...
- Android实用代码3-转自农民伯伯
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.获取已经安装APK的路径 ...
- Android实用代码1 - 转自农民伯伯
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1. 精确获取屏幕尺寸(例如: ...
最新文章
- 某程序的bug是什么意思?
- 基于FAST-RCNN深度学习的目标识别算法的MATLAB仿真
- Keepalived的VRRPD配置
- 【通知】CCIE LAB北京考场9月1日起开放考试
- DataTables中提示:DataTables warning: table id=example - Cannot reinitialise DataTable.
- vs未指定启动文件_高效开发利器之自定义模板文件
- 理论基础 —— 队列 —— 循环队列
- 结构设计模式 - 装饰器设计模式
- efcore调用函数_EF Core 3.1 执行sql语句的几种方法
- vbs中使用select case条件语句,case中匹配项多于一个时,提示:type mismathc/ 800A000D...
- Android复习之冒泡排序
- 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
- matlab对多项式求导的命令,matlab多项式求导
- 一次完整的软件工程课程设计
- 万字长文 | 最好的 C++ 模板元编程干货!
- linux用mame玩游戏,Ubuntu下用xmame玩街机游戏
- 【一款弹窗表白的pyqt5界面化小程序,完全零基础的你也可以用他追女生了】
- 2018,AI旗舰启程出发!自动化所全球AI邀请函
- mysql初始化后启动失败_初始化MySQL后服务不能正常启动
- 配置路由器用SSH登陆
热门文章
- mysql embed_html中object和embed标签的区别
- linux网络管理证书,计算机网络管理工程师技术水平证书有什么用
- 微信小程序万里目_4款万里挑一的微信小程序,每一个都是黑科技!
- 兼容ie8_兼容IE8的一些笔记
- 华为上半年手机销量_十月京东手机销量!华为mate40火爆,苹果11近百万销量
- FPGA之道(23)VHDL的signal、variable与constant
- 【 FPGA 】时钟抖动浅记
- Github拉取远端的时候提示“ssh: connect to host github.com port 22: Connection timed out”错误...
- SharePoint 2013 创建一个搜索中心和搜索设置
- 第一次来写博客,这里可以记录很多故事。