`

Android 屏幕兼容性

阅读更多
以下内容只是对Supporting Multiple Screens这部分文档的总结,只是对初看者启到一个提示作用,如果看完后还是不能有一个很好的理解,可以参考文档


基本概念
屏幕大小:以对角线的长度来衡量屏幕的大小

分辨率:屏幕上的像素个数。如320x480,就表示宽方向有320个像素,高方向有480个像素,整个屏幕有153,600个像素。

宽高比:宽的物理长度/高的物理长度,如:6cm/8cm。而不是用像素的比值来表示,如320/480。

屏幕密度:也可以是像素密度,即单位面积上存在多少个像素,单位是dpi。160dpi就是单位面积上有160个像素,240dpi就是单位面积上有240个像素。
屏幕的密度是由分辨率和屏幕大小(物理尺寸)决定的,320x480的分辨率在3寸的屏幕上与6寸的屏幕上密度是不同的。

dp(dpi):与像素无关的大小单位,将dp作为单位的可以看作是物理值。android将160dp作为一个标准(即单位面积上有160个像素点时),此时1dp=1px;当将1dp放到240dp的屏幕上去时,android就会自动将1dp调整为1.5px。

android将所有的密度泛化为:ldpi, mdpi, hdpi。将屏幕大小泛化为small, medium, large, xlarge。




Manifest.xml中的support-screens元素
<support-screens
    android:smallScreens="false"
    android:mediumScreens="false"
    android:largeScreens="false"
    android:xlargeScreens="false"
    android:anyDensity="false"
/>

anyDensity:程序是否可在任何密度的屏幕上运行。该值主要是为使用了px作为单位的程序设计的。
设为false时,anroid会启用density-compability特性,根据不同的屏幕密度将px值转换为合理的大小。
设为true时,就会关闭density-compability特性。
如果程序是以dp作为长度单位的,无论设为false, true都可以。

xxxScreens:是否支持某屏幕。
设为false时,表示不支持该大小的屏幕,android会启用size-compability特性,即只显示标准屏幕(normal size, mdpi)的大小。
设为true时,表示支持该大小的屏幕,android就不会做任何处理,将程序直接显示。


Manifest.xml中的uses-sdk元素
<uses-sdk
    android:minSdkVersion="integer"
    android:targetSdkVersion="integer"
    android:maxSdkVersion="integer"
/>
minSdkVersion:标识程序可以在低版本的andriod系统上运行,且最低的版本是多少。默认时为1

targetSdkVersion:该值主要是会影响support-screens元素中的属性的默认值。

maxSdkVersion:程序最高可运行在什么版本的android系统上,该属性一般不需要设置,android 2.0.1之后,android也不会去检查该属性,只有android market才会用到。


android为兼容多分辨率提供的兼容特性
density-compatibility:
1. dp,密度无关的单位
2. 根据屏幕密度将px转换为合理的值
3. pre-scale bitmap,根据当前的屏幕,从具有相应后缀的资源目录中加载资源(如:drawable-hdpi);同时,在相应后缀中无法找到指定资源时,就加载默认资源目录(drawable或drawable-mdpi)中的资源,并进行相应的缩放。
4. auto-scale bitmap,自己创建bitmap时,android会为对其进行缩放。

size-compatibility:
在support-screens的xxxScreen属性设为false,就会启用该特性。就是当程序运行在大屏幕上时,还是以正常屏幕的大小显示,其余的部分留黑。


屏幕密度,分辨率等数据获取和转换
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();

displayMetrics.density; // density比例,160dpi的为1,240dpi的为1.5(以160dpi为标准,240/160dpi)

displayMetrics.densityDpi; // 屏幕密度。160dpi,240dpi等
displayMetrics.scaledDensity; // 字体缩放比例

displayMetrics.heightPixels; // 高上有多少个像素
displayMetrics.widthPixels; // 宽上有多少个像素

displayMetrics.xdpi; // 以dp值来表示的宽
displayMetrics.ydpi; // 以dp值来表示的高
  • 大小: 9.2 KB
分享到:
评论

相关推荐

    Android屏幕点击录制工具

    1.屏幕点击录制,以及播放点击事件程序说明: ...完成以上过程,需要已经root过的手机,根据机型不同,适配兼容性会有问题, 如您的机型在适配时有问题,可mail我(本人机型MX2,亲测,可正常稳定使用)。

    Android Studio使用指南

    Android Studio是一个基于... 捕获性能、易用性、版本兼容性等问题。 支持ProGuard 和应用签名。 基于模板的向导来创建常见的Android设计和组件。 丰富的布局编辑器,允许你拖放UI组件并在多个屏幕上的预览布局,等等。

    浅谈Html5移动端ios/Android兼容性总结

    以前做pc端,也会遇到兼容性的问题,不过说实话,脑海里全是ie的问题,并没有什么可特别注意的,可能是我不善总结,现在做移动端(本来觉得移动端很easy,所以没放在眼里),so,我错了,我为自己的轻视高傲买单!...

    Android Studio

    Android Studio最新开发工具 ...提示工具更好地对程序性能、可用性、版本兼容和其他问题进行控制捕捉; 支持ProGuard和应用签名功能; 自带布局编辑器,可以让你拖放UI组件,并在多个屏幕配置上预览布局,等等。

    毕设项目Android studio 聊天APP 即时通讯APP 社交APP 项目文件

    提示工具以捕获性能、可用性、版本兼容性等问题,支持ProGuard和应用签名,基于模板的向导来生成常用的 Android 应用设计和组件,功能强大的布局编辑器,可以让你拖拉 使用语言包含Kotlin,Java,JavaScript,C++等...

    Google Q版本应用兼容性整改指导V1.0.pdf

    Android Q 支持屏幕录制,可以通过长时间按下“电源”菜单中的“屏幕快照”来开启 [1] 。 6、移除 Android Beam 用于在设备之间共享文件的 Android Beam 选项消失了 [1] 。 7、运营商锁定 如果用户从运营商那里购买...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    android-m-permissions-forward:Android“M”权限和向前兼容性

    旧版应用的 Android M 权限和向前兼容性一个示例应用程序,用于演示 Android M 中引入的新运行时权限模型介绍MyContacts 应用程序将查询 ContactsProvider 组件以检索所有存储的联系人。 它需要 READ_CONTACTS 权限...

    基于android的校园视频会议系统

    1. 兼容性广泛:Android是目前最普及的移动操作系统之一,在各个学校、机构和个人用户中广泛使用。基于Android平台的校园视频会议系统可以运行在多种不同的Android设备上,包括智能手机、平板电脑和智能电视等,能够...

    Android基础教程

    以及本地数据存储等基础知识,而且通过“Hello, Android”项目深入探讨了外部通信、基于位置的服务、内置SQLite数据库、3D图形、多点触控、小部件、兼容性测试,以及如何向AndroidMarket发布应用程序等内容。...

    APP测试点全面系统总结

    在测试计划中:需要安排单独的时间用于android不同系统的兼容性测试,包括2.0以下版本和4.0以上等  3&gt;.手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米,华为,锤子对市面上主流手机的支持  4&gt;....

    APP端软件测试点总结

    在测试计划中:需要安排单独的时间用于android不同系统的兼容性测试,包括2.0以下版本和4.0以上等  3&gt;.手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米,华为,锤子对市面上主流手机的支持  4&gt;....

    Android UI规范

    Android 驱动了数百万的手机、平板和其它设备,兼容了各种屏幕宽度和比例。利用 Android 灵活的布局系统,您可以创造出从平板到手机都看起来很优雅的应用。 灵活 对您的布局进行放大、缩小或者裁减以适应不同的...

    Android项目PopupWindow下拉列表.rar

    1. 良好的兼容性:支持Android各个版本,兼容各种屏幕尺寸和设备类型。 2. 灵活的下拉列表项布局:可根据需要自定义下拉列表项的布局和样式。 3. 强大的数据处理能力:支持从本地数据库或网络获取数据,并进行分类、...

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

    第15章 设计高兼容性应用程序  第五部分 对外发布你的Android应用程序 第16章 移动软件开发过程  第17章 设计和开发"防弹"Android应用程序  第18章 测试Android应用程序  第19章 发布你的Android应用程序...

    Android 4游戏编程入门经典

     1.8 所有设备之间的兼容性  1.9 不同的手机游戏  1.9.1 人手一台游戏机  1.9.2 随时上网  1.9.3 普通用户与游戏迷  1.9.4 市场很大,开发人员很少  1.10 小结 第2章 从android sdk开始  2.1 搭建开发环境 ...

    android开发秘籍

    1.2 android 的两面性 2 1.3 运行android 的设备 2 1.3.1 htc 系列机型 4 1.3.2 摩托罗拉系列机型 4 1.3.3 三星系列机型 4 1.3.4 平板电脑 5 1.3.5 其他设备 5 1.4 android 设备的硬件差异 5 1.4.1 屏幕 5 ...

    Android开发实验---通讯录.docx

    要考到不同手机屏幕大小可能不一样,应尽兼容大多数手机屏幕尺寸,使之显示无障碍。 实现思路与简单设计 1. 关于通讯录获取联系人信息以及联系人信息的存储结构的分析。 2. 解决添加联系人的表中添加数据以及读取已...

    Android项目gallery重叠特效源码+注释.rar

    4. 兼容性良好:支持Android主流版本,兼容各种屏幕尺寸和设备。 应用场景: 1. 图片展示:可用于相册、画廊等应用中的图片展示,提升视觉效果。 2. 轮播广告:适用于广告轮播、新闻推送等场景,增加用户粘性。 3. ...

Global site tag (gtag.js) - Google Analytics