有些时候,我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸:
从网上找过不少资料,发现获取屏幕尺寸并不是很复杂的编程操作,下面的代码即可获取屏幕的尺寸。
在一个Activity的onCreate方法中,写入如下代码:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,具体的内容如下:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。
- 浏览: 80479 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhangyf1987hb:
修改解决方案:不是在那里直接写 -ml, 而是在GCC CLi ...
eclipse c undefined reference to `sqrt'
发表评论
-
ubuntu android eclipse 链接设备(手机)看log卡死
2013-06-09 14:31 914我的系统是ubuntu12.04 LTS 这几天eclipse ... -
代码规范
2013-06-05 18:32 1084[-] 一Import的次序 二缩进Indenta ... -
Android菜单详解(四)——使用上下文菜单ContextMenu
2013-06-04 19:02 819Android菜单详解(四) ... -
Android服务之Service(其二)关于AIDL进程间通信
2013-05-30 17:10 1004上一节中我们讲解了本地Service,这一节主要是 ... -
Android服务之Service(其一)
2013-05-30 16:56 663android中服务是运行在后台的东西,级别与activit ... -
android repo 切换分支
2013-05-07 10:25 2333查看可切换的分支cd .repo/manifestsgit b ... -
android工程生成第三方jar包
2013-04-28 17:10 705开发中需要将一个已存在的工程生成一个jar包供新的app ... -
Android 解析Server返回为Json数据的简单例子
2013-04-24 17:36 1304大家好,今天给大家分享下Android解析Json的例子,我 ... -
让Android程序支持安装到SD卡,降低卸载率
2013-04-23 15:12 693用户为什么为卸载你的应用?调查显示,用户大约50%的情况卸载 ... -
Android SurfaceView播放视频有声音无图像问题
2013-04-23 14:08 3549在用SurfaceView播放视频时,如果处理不当,会出现有 ... -
代码中设置android:layout_centerInParent属性
2013-04-12 16:24 1945如果想要在代码中设置 android:layout_cent ... -
MATCH_PARENT和FILL_PARENT区别
2013-03-20 11:08 625有网友表示对于很多工程中的MATCH_PARENT出现在la ... -
圆形菜单效果
2013-02-26 17:47 733需要android3.0 大小: 48. ... -
mmm和mm失败问题解决
2013-02-19 18:47 1252mmm和mm出现一下log问题解决 log: ma ... -
mmm和mm出现No private recovery resources for TARGET_DEVICE 问题解决
2013-02-19 18:42 3886mmm和mm出现一下提示解决方法: log: No ... -
android 播放rtsp协议流媒体
2013-02-19 13:35 3383目前在做视频应用的时候,比较先进的技术就是RTSP流媒体了, ... -
android 系统结构
2013-02-05 19:19 983Android 是google公司针对手机开发的一个平台,并 ... -
android 代码优化 lint
2013-02-05 18:51 847把Eclipse(Eclipse版本必须是3.6以上)的AD ... -
QuickContactBadge 联系人功能控件
2013-02-02 15:29 1496一、简介 QuickContact是为了应用程序能够快 ... -
android contentDescription 什么作用
2013-02-02 12:22 738这个相当于网页控件img的缺省图片时(alt属性)显示的文 ...
相关推荐
编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。
获取手机屏幕大小,屏幕分辨率,屏幕密度,导航栏高度,标题栏高度
获取屏幕高度: /** * 获得屏幕高度 * @param context * @return * by Hankkin at:2015-10-07 21:15:59 */ public static int getScreenWidth(Context context) { WindowManager wm = (WindowManager) context ....
6.1 屏幕的尺寸信息 107 6.1.1 屏幕参数 107 6.1.2 系统屏幕密度 107 6.1.3 独立像素密度dp 107 6.1.4 单位转换 108 6.22D绘图基础 110 6.3 Android XML绘图 113 6.3.1 Bitmap 113 6.3.2 Shape 113 6.3.3 ...
5、屏幕尺寸 6、Android 系统版本 7、运行内存 8、储存空间 9、网络连接是否成功 10、是否支持WiFi 11、数据网络是否可用 12、正在使用的网路(WiFi / 数据网) 13、当前网络(WiFi / 3G / 4G) 14、电池电量 15、...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
并发布在然后由jazzruby更新,这是的然后由bovirus更新,这是的 允许您查看: 应用程序图标包裹名字名称(所有语言) 版本内部编号SDK的最低,最高和目标版本(Android) 支持的密度(DPI)和屏幕尺寸建筑(ABI) ...
获取屏幕尺寸与密度getDisplayMetrics :键盘showSoftInput 关闭键盘事件closeSoftInput 获取包信息getPackageInfo 获取当前版本号getVersionName 获取开发版本号getVersionCode 是否存在该包名的应用exitAppBy 日期
第5章 为多种屏幕尺寸进行开发 125 5.1 多种屏幕尺寸的考虑 125 5.1.1 像素密度 126 5.1.2 利用设备dpi 127 5.2 使内容适应舞台尺寸 131 5.2.1 使用stagescalemode 和 stagealign类 131 5.2.2 处理舞台尺寸...