`

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 8.1 CDD兼容性定义文档中文版.zip

    《Android 8.1 CDD兼容性定义文档》是Android开发者不可或缺的重要参考资料,它详细阐述了Android系统在8.1版本中的兼容性要求,确保应用能在不同设备上稳定运行。这份文档中文版的出现,为中国的Android开发人员...

    Android-免root兼容所有android屏幕实时共享及远程控制

    本项目名为"Android-免root兼容所有android屏幕实时共享及远程控制",其核心目标是为用户提供无需手机root权限的屏幕分享和远程控制解决方案。下面将详细介绍这一技术实现的关键知识点。 1. **屏幕捕获**: 实现...

    Android屏幕适配资源

    3. 兼容性提升:适配不同屏幕尺寸和密度,有助于提升应用在市场上的兼容性。 总结,"Android屏幕适配资源"提供了一种有效的方式,使得开发者能够快速地为多种Android设备实现屏幕适配。通过合理使用这套资源,可以...

    Android屏幕大小和精度

    在Android系统中,屏幕大小...总之,理解并掌握Android屏幕大小和精度的相关概念,对于开发出高质量、兼容性强的应用至关重要。通过合理的资源管理和布局设计,开发者可以为所有Android用户提供一致且优秀的视觉体验。

    中国市场Android终端App兼容性质量报告2012年第一期 (16)

    ### 中国市场Android终端App兼容性质量报告2012年第一期 (16) 关键知识点解析 #### 一、报告背景与意义 本报告针对2012年中国市场的Android终端及其应用程序(App)的兼容性进行了全面的质量评估。随着3G、4G网络的...

    android 屏幕CIT测试程序

    Android屏幕CIT(Component Integration Test,组件集成测试)测试程序是一种用于验证Android设备屏幕功能的自动化测试工具。这种测试旨在确保设备的显示效果、触摸响应、颜色校准、多点触控以及各种屏幕分辨率和...

    Android-今日头条屏幕适配方案终极版一个极低成本的Android屏幕适配方案

    【Android屏幕适配方案终极版】是Android开发者面临的一个重要课题,尤其是在当今各种设备尺寸繁多的情况下。今日头条作为一款广受欢迎的信息聚合应用,其屏幕适配策略无疑具有很高的参考价值。这个低成本的解决方案...

    android区域性屏幕截图

    Android有多种版本和设备,因此在编写代码时要考虑兼容性问题,如API版本差异、设备屏幕尺寸和密度等。 以上就是“android区域性屏幕截图”的核心知识点。通过这些技术,开发者可以灵活地为用户提供选择特定屏幕...

    android点击图标关闭屏幕

    6. 兼容性测试:不同的Android设备和版本可能对电源管理的实现有所不同,因此在实际开发中,需要进行广泛的兼容性测试,确保功能在各种环境下都能正常工作。 综上所述,实现“点击图标关闭屏幕”功能需要对Android...

    实现屏幕的录制功能

    本文将深入探讨如何使用代码实现Android屏幕录制功能。 首先,我们需要理解Android的多媒体框架,尤其是MediaProjection服务,这是实现屏幕录制的关键。MediaProjection API允许应用捕获设备的屏幕内容和音频,它在...

    android屏幕的切换

    8. **测试与调试**:在开发过程中,确保在多种屏幕尺寸和方向下测试应用,以确保兼容性和视觉一致性。使用Android Studio的模拟器或实际设备进行测试,使用AVD Manager创建不同配置的虚拟设备。 9. **第三方库支持*...

    android开发手机兼容性测试方案

    ### Android开发手机兼容性测试方案知识点详述 #### 一、概述 - **项目背景**:随着移动互联网的发展,各种移动应用不断涌现,为了确保应用能够在不同设备上正常运行,进行兼容性测试变得尤为重要。本测试方案旨在...

    Android屏幕录制

    另外,不同版本的Android可能需要处理一些兼容性问题,例如API 29及以上版本需要使用`AudioRecord`录制音频并手动合并到视频中。 总的来说,Android屏幕录制涉及到多个组件的协同工作,包括权限管理、虚拟显示、...

    Android-免root兼容所有android屏幕实时共享及远程控制.zip

    10. **测试与调试**:为了确保在各种设备上都能正常工作,开发者需要进行广泛的设备测试和兼容性调试。 通过分析这个项目,我们可以学习到如何在Android平台上实现屏幕共享和远程控制,同时了解如何处理权限问题、...

    Android2.3 系统的兼容性标准规范

    ### Android 2.3系统的兼容性标准规范 #### 一、引言 本文档详尽地阐述了Android 2.3系统(代号Gingerbread)的兼容性标准规范,旨在确保不同制造商生产的设备能够在软件层面保持一致性和互操作性。此版本的...

    Android屏幕适配(按百分比)

    综上所述,Android屏幕适配按百分比的方法是利用Percent Support Library,创建基于父视图百分比的布局,以实现跨设备的兼容性。通过学习和实践,开发者可以有效地提高应用在各种屏幕上的表现。

    Android App 版本更新完美适配7.0、8.0, 兼容Android7.0 8.0

    本文将深入探讨如何实现“Android App版本更新完美适配7.0、8.0”,以及如何实现对Android 7.0和8.0的兼容性。 首先,了解Android版本间的差异至关重要。Android 7.0(Nougat)引入了多项改进,如多窗口支持、数据...

    android屏幕适配demo

    在这个demo中,主要关注的是视图大小的调整和布局管理,以实现跨设备的兼容性。 首先,Android提供了多种方法来处理屏幕适配,包括使用dp(density-independent pixels)单位代替像素,以及使用相对布局...

    android截取屏幕图片

    在Android平台上,截取屏幕图片是一项常见的...开发者需要理解权限管理的变化,并根据不同的Android版本调整相应的代码,以确保兼容性和用户体验。在实际开发中,可能还需要考虑异步处理、性能优化以及用户隐私等因素。

Global site tag (gtag.js) - Google Analytics