Android利用反射获取状态栏(StatusBar)高度
来源:互联网 发布:数据库安全性实验报告 编辑:程序博客网 时间:2024/05/16 16:09
MainActivity如下:
package cc.teststatusbarheight;import java.lang.reflect.Field;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.app.Activity;import android.content.Context;/** * Demo描述: * 利用反射获取状态栏StatusBar的高度 * * 反射基础: * http://blog.csdn.net/lfdfhl/article/details/10311505 * * 参考资料: * http://blog.csdn.net/lilu_leo/article/details/10211327 * http://blog.csdn.net/dany1202/article/details/6571010 * Thank you very much */public class MainActivity extends Activity { private Button mButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}private void init(){mButton=(Button) findViewById(R.id.button);mButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {getStatusBarHeight(MainActivity.this);}});}private void getStatusBarHeight(Context context){int statusBarHeight=0;try {Class clazz=Class.forName("com.android.internal.R$dimen");Object object=clazz.newInstance();Field field=clazz.getField("status_bar_height");//反射出该对象中status_bar_height字段所对应的在R文件的id值//该id值由系统工具自动生成,文档描述如下://The desired resource identifier, as generated by the aapt tool.int id = Integer.parseInt(field.get(object).toString()); System.out.println("id="+id);//依据id值获取到状态栏的高度,单位为像素statusBarHeight = context.getResources().getDimensionPixelSize(id); System.out.println("statusBarHeight="+statusBarHeight+"pixel");} catch (Exception e) {// TODO: handle exception}}}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_centerHorizontal="true" android:layout_marginTop="100dip" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="利用反射获取状态栏StatusBar的高度" android:layout_centerInParent="true" /></RelativeLayout>
- Android利用反射获取状态栏(StatusBar)高度
- Android利用反射获取状态栏(StatusBar)高度
- android有效获取状态栏(StatusBar)高度
- 有效获取状态栏(StatusBar)高度
- 有效获取状态栏(StatusBar)高度
- Android开发之有效获取状态栏(StatusBar)高度
- Android开发之有效获取状态栏(StatusBar)高度
- Android获取StatusBar高度
- android通过反射获取状态栏的高度
- android 获取状态栏高度--利用getIdentifier()
- Android获取系统顶部状态栏(StatusBar)与底部工具栏(NavigationBar)的高度
- Android 状态栏(StatusBar)和虚拟键(NavigationBar)的高度获取
- Android通过反射获取屏幕大小,自动减去状态栏高度
- Android:获取状态栏高度
- Android 获取状态栏高度
- Android获取状态栏高度
- android获取状态栏高度
- android获取状态栏高度
- 一个运算符优先级问题引发的血案
- ARM11开发板烧写过程
- arcsde10.1能连上sde但不能创建和添加数据
- 动软
- UIApplication深入研究
- Android利用反射获取状态栏(StatusBar)高度
- python学习笔记--1
- android中的属性动画暂停功能的实现
- [poj 1127]Jack Straws[线段相交][并查集]
- C/C++中static关键字作用总结
- listview 日用手册
- Object-C isa
- mysql 索引 简述
- DIV边框和视窗始终有缝隙,希望帮忙解决一下问题,顺便提一下div布局结构的合理建议