`
zhifeiji512
  • 浏览: 119247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Android的多种屏幕支持

阅读更多


首先是几个基本概念:

1.屏幕尺寸Screen size

即显示屏幕的实际大小,按照屏幕的对角线进行测量。

为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的自定义屏幕布局-平台将根据屏幕实际尺寸选择对应布局进行渲染,这种选择对于程序侧是透明的。


2.屏幕长宽比Aspect ratio

长宽比是屏幕的物理宽度与物理高度的比例关系。应用程序可以通过使用限定的资源来为指定的长宽比提供屏幕布局资源。

3.屏幕分辨率Resolution

在屏幕上显示的物理像素总和。需要注意的是:尽管分辨率通常用宽x高表示,但分辨率并不意味着具体的屏幕长宽比。

在Andorid系统中,应用程序不直接使用分辨率。


4.密度Density

根据像素分辨率,在屏幕指定物理宽高范围内能显示的像素数量。

在同样的宽高区域,低密度的显示屏能显示的像素较少,而高密度的显示屏则能显示更多的像素。

屏幕密度非常重要,因为其它条件不变的情况下,一共宽高固定的UI组件(比如一个按钮)在在低密度的显示屏上显得很大, 而在高密度显示屏上看起来就很小。

为简单起见,Android把所有的屏幕分辨率也分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的资源-平台将透明的对资源进行缩放以适配指定的屏幕分辨率。


5.设备独立像素Density-independent pixel (dp)

应用程序可以用来定义UI组件的虚拟像素单元,通过密度无关的方式来描述布局尺寸和位置。

一个设备独立像素相当于一个160 dpi屏幕上的物理像素。

在程序运行时,系统根据屏幕的实际密度透明的处理任何需要缩放的设备独立像素单元,设备独立像素转换成屏幕实际像素的换算很简单:pixels = dps * (density / 160).

例如在240 dpi的屏幕上,1个设备独立像素等于1.5物理像素.为确保UI组件在不同的屏幕都能合适的展示,强烈建议使用设备独立像素单元来定义你的应用程序UI。


四种屏幕尺寸分类:: small, normal, large, and xlarge

四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)

需要注意的是: xhdpi是从 Android 2.2 (API Level 8)才开始增加的分类.

xlarge是从Android 2.3 (API Level 9)才开始增加的分类.

DPI是“dot per inch”的缩写,每英寸像素数。


一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。


参考:http://developer.android.com/images/screens_support/screens-ranges.png


两种获取屏幕分辨率信息的方法:


DisplayMetrics metrics = new DisplayMetrics();

Display display = activity.getWindowManager().getDefaultDisplay();

display.getMetrics(metrics);

//这里得到的像素值是设备独立像素dp


//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。

不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。

如果需要为Android pad定制资源文件,则res目录下的目录可能为:

drawable

drawable-ldpi

drawable-mdpi

drawable-hdpi

drawable-xhdpi

drawable-nodpi

drawable-nodpi-1024×600

drawable-nodpi-1280×800

drawable-nodpi-800×480

values

values-ldpi

values-mdpi

values-hdpi

values-xhdpi

values-nodpi

values-nodpi-1024×600

values-nodpi-1280×800

values-nodpi-800×480


参考:


http://developer.android.com/guide/practices/screens_support.html

分享到:
评论

相关推荐

    android 获取屏幕硬件分辨率方法

    然而,这些值可能不会直接对应于屏幕的实际分辨率,因为Android支持多种屏幕密度。 `dm.density`是一个浮点数,表示屏幕的密度因子,它通常基于160dpi(每英寸160个像素,也称为MDPI或中等密度)的标准。例如,如果...

    android手机屏幕共享软件

    在Android平台上,屏幕共享软件是一种非常实用的工具,它能够实时传输手机屏幕的内容,使得用户可以在其他设备上观看或记录Android设备的屏幕动态。这对于Android开发人员来说尤其有用,因为它们能够远程调试应用,...

    Android屏幕大小和精度

    Android操作系统设计时就考虑到了不同设备的屏幕差异,通过灵活的布局和支持多种分辨率来确保应用能在各种尺寸和密度的屏幕上正常工作。Android系统采用密度独立像素(DIP或dp)作为单位,使得开发者可以编写不依赖...

    Android 屏幕适配工具

    "Android屏幕适配"是Android开发中的核心概念,它涉及到尺寸单位、布局权重、资源多版本、比例适配以及使用百分比布局等多种技术。 1. 尺寸单位: - dp (density-independent pixels):与设备像素密度无关的像素...

    Android多屏幕支持Demo

    在Android开发中,多屏幕支持是一项关键特性,尤其在Android Nougat (API级别24)及更高版本中,引入了Multi-Window模式。这个"Android多屏幕支持Demo"是专门为展示如何在Android应用中实现多窗口功能而设计的。在...

    Android如何自适应多种屏幕手机

    ### Android如何自适应多种屏幕手机 #### 一、概述 Android平台因其开放性和广泛的设备支持而受到欢迎,但这也带来了多样化的屏幕尺寸和分辨率问题。为了确保应用能够在各种不同的设备上良好运行,开发者需要采取...

    android屏幕适配方案

    - Android支持多种资源目录,如`res/layout-mdpi`, `res/layout-xhdpi`等,用于存放针对不同密度的布局文件。 - 同样,可以创建`res/drawable-mdpi`, `res/drawable-xhdpi`等目录,存储不同分辨率的图片资源。 3....

    android屏幕的切换

    Android系统支持多种屏幕尺寸和方向,包括横屏(Landscape)和竖屏(Portrait)。本篇文章将深入探讨如何在Android中实现屏幕的切换,以及在横竖屏之间转换时需要注意的关键点。 首先,Android系统会根据设备的物理...

    android屏幕取词简单事例1

    Tesseract是一个由Google维护的古老但强大的OCR引擎,支持多种语言,并且有Android版本可供集成。 集成Tesseract到Android项目中,首先需要添加其依赖库到项目的build.gradle文件中。这通常通过添加以下Maven仓库和...

    android自适应屏幕demo

    1. **使用资源维度文件夹**:Android支持在不同的资源目录下放置特定尺寸和密度的图片、布局等资源,例如`res/layout-sw600dp`用于7英寸平板,`res/drawable-hdpi`用于高密度屏幕。通过这种方式,系统会自动选择最...

    Android自动适应屏幕源码

    "Android自动适应屏幕源码"就是这样一个项目,它展示了如何通过编程技术实现应用在多种设备上显示时的良好布局和视觉效果。这个源码包包含了实现这一功能的具体代码示例,可以帮助开发者深入理解Android屏幕适配的...

    Android自适应屏幕大小和layout布局(横屏竖屏)

    在Android应用开发中,为了确保应用能够在各种不同尺寸的屏幕上正常显示,开发者需要考虑多种屏幕分辨率的情况。例如,常见的屏幕分辨率包括480x320、640x360以及800x480等。为了实现良好的用户体验,可以采用以下...

    android获取屏幕分辨率

    Android系统支持多种屏幕尺寸和密度,包括小、正常、大、超大四种尺寸类别,以及低、中、高、超高四种密度类别。开发者需要确保应用能在这些不同的配置下正常运行。 获取屏幕分辨率的方法主要涉及Android的`...

    android屏幕自适应

    Material Design提供了预设的组件和动画,它们已经考虑了多种屏幕尺寸的适配,使用它们可以简化开发过程。 10. **使用Swiperefreshlayout和CoordinatorLayout** 这些布局组件提供了一种自适应的方式来处理下拉...

    android自动适应屏幕源码

    - 测试:在多种屏幕尺寸和分辨率的设备上进行充分测试,确保应用在各种情况下表现良好。 - 避免硬编码尺寸:尽量使用比例或相对单位,而不是固定像素值。 - 使用Android Studio的预览功能检查不同屏幕尺寸下的...

    Android-针对Android屏幕适配所整合的几种常用方案

    以上就是Android屏幕适配的多种策略和技巧,开发者可以根据项目需求和目标用户群选择合适的解决方案,确保应用在各种设备上都能提供优秀的用户体验。不断学习和实践这些方法,将有助于提升应用的质量和专业性。

    android多屏幕多分辨率适配

    8. **测试和调试**:利用Android模拟器和真实设备,覆盖多种屏幕尺寸和分辨率进行测试,确保应用在各种环境下表现良好。 通过以上方法,开发者可以构建出适应各种屏幕尺寸和分辨率的Android应用,提升应用的兼容性...

    Android 智能屏幕适配工具,便捷有效

    Android支持多种屏幕尺寸(小型、正常、大型、超大型)和密度(低、中、高、超高),通过dp(density-independent pixels)单位来实现不同屏幕间的统一视觉效果。然而,仅依赖dp并不足以解决所有问题,特别是在设计...

    android屏幕自适应案例详解

    Android系统支持多种屏幕尺寸(小型、正常、大型、超大型)和密度(低、中、高、超高)。为了实现自适应,开发者需要采用尺寸独立的单位(如dp和sp)进行布局设计,并使用不同的资源目录来适配不同屏幕。 1. **使用...

Global site tag (gtag.js) - Google Analytics