以下内容只是对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
分享到:
相关推荐
1.屏幕点击录制,以及播放点击事件程序说明: ...完成以上过程,需要已经root过的手机,根据机型不同,适配兼容性会有问题, 如您的机型在适配时有问题,可mail我(本人机型MX2,亲测,可正常稳定使用)。
Android Studio是一个基于... 捕获性能、易用性、版本兼容性等问题。 支持ProGuard 和应用签名。 基于模板的向导来创建常见的Android设计和组件。 丰富的布局编辑器,允许你拖放UI组件并在多个屏幕上的预览布局,等等。
以前做pc端,也会遇到兼容性的问题,不过说实话,脑海里全是ie的问题,并没有什么可特别注意的,可能是我不善总结,现在做移动端(本来觉得移动端很easy,所以没放在眼里),so,我错了,我为自己的轻视高傲买单!...
Android Studio最新开发工具 ...提示工具更好地对程序性能、可用性、版本兼容和其他问题进行控制捕捉; 支持ProGuard和应用签名功能; 自带布局编辑器,可以让你拖放UI组件,并在多个屏幕配置上预览布局,等等。
提示工具以捕获性能、可用性、版本兼容性等问题,支持ProGuard和应用签名,基于模板的向导来生成常用的 Android 应用设计和组件,功能强大的布局编辑器,可以让你拖拉 使用语言包含Kotlin,Java,JavaScript,C++等...
Android Q 支持屏幕录制,可以通过长时间按下“电源”菜单中的“屏幕快照”来开启 [1] 。 6、移除 Android Beam 用于在设备之间共享文件的 Android Beam 选项消失了 [1] 。 7、运营商锁定 如果用户从运营商那里购买...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
旧版应用的 Android M 权限和向前兼容性一个示例应用程序,用于演示 Android M 中引入的新运行时权限模型介绍MyContacts 应用程序将查询 ContactsProvider 组件以检索所有存储的联系人。 它需要 READ_CONTACTS 权限...
1. 兼容性广泛:Android是目前最普及的移动操作系统之一,在各个学校、机构和个人用户中广泛使用。基于Android平台的校园视频会议系统可以运行在多种不同的Android设备上,包括智能手机、平板电脑和智能电视等,能够...
以及本地数据存储等基础知识,而且通过“Hello, Android”项目深入探讨了外部通信、基于位置的服务、内置SQLite数据库、3D图形、多点触控、小部件、兼容性测试,以及如何向AndroidMarket发布应用程序等内容。...
在测试计划中:需要安排单独的时间用于android不同系统的兼容性测试,包括2.0以下版本和4.0以上等 3>.手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米,华为,锤子对市面上主流手机的支持 4>....
在测试计划中:需要安排单独的时间用于android不同系统的兼容性测试,包括2.0以下版本和4.0以上等 3>.手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米,华为,锤子对市面上主流手机的支持 4>....
Android 驱动了数百万的手机、平板和其它设备,兼容了各种屏幕宽度和比例。利用 Android 灵活的布局系统,您可以创造出从平板到手机都看起来很优雅的应用。 灵活 对您的布局进行放大、缩小或者裁减以适应不同的...
1. 良好的兼容性:支持Android各个版本,兼容各种屏幕尺寸和设备类型。 2. 灵活的下拉列表项布局:可根据需要自定义下拉列表项的布局和样式。 3. 强大的数据处理能力:支持从本地数据库或网络获取数据,并进行分类、...
第15章 设计高兼容性应用程序 第五部分 对外发布你的Android应用程序 第16章 移动软件开发过程 第17章 设计和开发"防弹"Android应用程序 第18章 测试Android应用程序 第19章 发布你的Android应用程序...
1.8 所有设备之间的兼容性 1.9 不同的手机游戏 1.9.1 人手一台游戏机 1.9.2 随时上网 1.9.3 普通用户与游戏迷 1.9.4 市场很大,开发人员很少 1.10 小结 第2章 从android sdk开始 2.1 搭建开发环境 ...
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 ...
要考到不同手机屏幕大小可能不一样,应尽兼容大多数手机屏幕尺寸,使之显示无障碍。 实现思路与简单设计 1. 关于通讯录获取联系人信息以及联系人信息的存储结构的分析。 2. 解决添加联系人的表中添加数据以及读取已...
4. 兼容性良好:支持Android主流版本,兼容各种屏幕尺寸和设备。 应用场景: 1. 图片展示:可用于相册、画廊等应用中的图片展示,提升视觉效果。 2. 轮播广告:适用于广告轮播、新闻推送等场景,增加用户粘性。 3. ...