Android界面相关的类
来源:互联网 发布:java定义数组怎么储存 编辑:程序博客网 时间:2024/06/04 18:58
Android界面相关的类
Window
Activity的显示界面对象,并作为顶层View被添加到WindowManager中。Window提供了标准的UI显示策略:界面背景、标题区域、默认的事件处理。该抽象类只有一个子类PhoneWindow。在Activity的创建过程中,ActivityThread类调用performLaunchActivity方法时会执行Activity.attach()方法,该方法包含下面的代码片段:
//将包含Fragment的容器绑定到Activity实例中 mFragments.attachActivity(this, mContainer, null); //为Activity实例创建一个新的Window对象 mWindow = PolicyManager.makeNewWindow(this); mWindow.setCallback(this); mWindow.setOnWindowDismissedCallback(this); mWindow.getLayoutInflater().setPrivateFactory(this); if (info.softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) { mWindow.setSoftInputMode(info.softInputMode); } if (info.uiOptions != 0) { mWindow.setUiOptions(info.uiOptions); } ... //为Window对象设置Window Manager mWindow.setWindowManager( (WindowManager)context.getSystemService(Context.WINDOW_SERVICE), mToken, mComponent.flattenToString(), (info.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0); if (mParent != null) { mWindow.setContainer(mParent.getWindow()); } mWindowManager = mWindow.getWindowManager();
WindowManager
应用和设备窗口管理器(Window Manager)交互的接口,可以通过如下方式获取该类实例:
Context.getSystemServier(Context.WINDOW_SERVICE);
每个WindowManager实例都和一个特定的Display对象绑定在一起。
Display
代表一个逻辑显示屏(logical Display),显示区域被划分成两种:
- 应用显示区域(Application Display Area):该区域负责显示应用的Window,不包含系统相关的显示,所以该区域有可能会比实际电视区域小,可以通过如下方法获取应用显示区域:
public void getSize(Point outSize); //返回显示区域的大小,结果保存在outSize中,单位为pxpublic void getRectSize(Rect outSize); //返回显示区域的矩形区域,结果保存在outSzie中,单位为pxpublic void getMetrics(DisplayMetrics outMetrics); // 返回显示区域的指标,具体可以查阅DisplayMetrics类
- 实际显示区域(Real Display Area): 该区域显示应用的window和系统相关的显示,一般情况下,该区域大小和绑定的物理屏幕大小相同,除非Window Manager模拟将内容显示在小屏幕上,可以通过下面的方法获取该区域的大小:
public void getRealSize(Point outSize);public void getRealMetrics(DisplayMetrics outMetrics);
注意:逻辑显示屏和物理显示屏不同,逻辑显示屏可以被映射到多个物理显示屏上(比如在Presentation的时候)
DisplayMetrics
用于保存屏幕大小,屏幕密度,字体缩放的类,一般通过下面的代码获取包含上述指标的该类对象:
DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);
该类中包含以下比较重要的字段:
public static final int DENSITY_LOW = 120; //public static final int DENSITY_MEDIUM = 160; // 默认的屏幕密度public static final int DENSITY_HIGH = 240; //public static final int DENSITY_XHIGH = 320; //public int widthPixels; //屏幕的宽度,单位为pxpublic int heightPixels; //屏幕的高度,单位为pxpublic float density; //屏幕密度(以160dpi为基准),当屏幕密度为120dpi时,该字段的值为0.75;当屏幕密度为320dpi时,该字段的值为2public int densityDpi; //屏幕密度,单位为每英寸的像素点个数public float xdpi; //X方向上每英寸像素点的个数public float ydpi; //Y方向上每英寸像素点的个数
0 0
- Android界面相关的类
- Android界面开发的相关知识
- Android界面开发的相关知识
- Android界面开发的相关知识
- Android界面相关知识
- 【android】界面布局相关
- java界面相关的
- android系统音量界面相关
- 前台的界面开发相关
- android 界面自适应屏幕尺寸相关
- 界面相关
- android中通过拨号键打开contacts相关界面的流程分析
- android中通过拨号键打开contacts相关界面的流程分析
- Android界面视图的类图
- Android界面视图的类图
- Android 的界面构成
- Android的界面布局
- Android的设置界面
- Android 缓存目录
- Algorithms—179.Largest Number
- Android targetSdkVersion 影响 js 的功能
- 引用网络jQuery地址
- IOS - 购买类型视图
- Android界面相关的类
- java学习笔记——接口
- mysql优化2
- android 使用两个SharedPreferences会互相干扰,应使用一个SharedPreferences
- 为首次部署MongoDB做好准备:容量计划和监控
- 推荐!国外程序员整理的 C++ 资源大全
- ASP.NET性能优化之构建自定义文件缓存
- Spark SQL的例子
- 网格视图在Android应用程序中的使用