关于Android的分辨率支持,为大家翻译官方文档
看世界杯的空闲时间,翻译一下官方文档。分辨率问题是大家都很关心的(720×480会不会悲剧),而关于这个问题,android官方的文档无疑最有说服力。由于不是所有的人都愿意去读英文,所以趁球赛没开始,翻译一些。
原文地址:http://developer.android.com/guide/practices/screens_support.html
————————下面是翻译—————————我是分割线—————————
多分辨率支持
在设计之初,Android系统就被设计为一个可以在多种不同分辨率的设备上运行的操作系统。对于应用程序来说,系统平台向它们提供的是一个稳定的,跨平台的运行环境,而关于如何将程序以正确的方式显示到它所运行的平台上所需要的大部分技术细节,都由系统本身进行了处理,无需程序的干预。当然,系统本身也为程序提供了一系列API,所以在目标平台的分辨率是可以完全确定的情况下,程序也可以精确的控制自身在目标平台上的界面显示方式。
这个文档会说明系统平台究竟提供了哪些分辨率支持特性,与它们如何在程序中使用的信息。如果你遵循文档中列出的方法,就很容易让你的程序在所有支持的分辨率下都能完美显示。这样你就可以用一个单独的.apk文件,将你的程序发布到所有的平台上。
如果你已经发布过针对Android 1.5或更早版本平台的程序,你应该仔细阅读这篇文档,然后考虑一下到底如何让自己的老程序可以在拥有各种不同分辨率,并且运行着Android 1.6或更新平台上正常显示。在绝大部分情况下,只需要对程序作出小小的修改就可以达到目的,但你仍然需要尽可能地在各种分辨率的平台上进行测试。
特别的,如果你有一个已经完成的程序,又想让它可以在超低分辨率的设备(比如320×240)上正确运行,你需要阅读“老程序的更新策略”,那篇文档会告诉你应该怎么做。
术语和概念
屏幕尺寸
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如2.8寸,3.5寸)。
简而言之,Android把所有的屏幕尺寸简化为三大类:大,正常,和小。
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。
屏幕长宽比
屏幕的物理长度与物理宽度的比例。程序可以为制定长宽比的屏幕提供制定的素材,只需要用系统提供的资源分类符long和notlong。
分辨率
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。
密度
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多 ——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。
密度无关的像素(DIP)
指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为160DPI的屏幕上的像素是一致的,这也是Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:pixels = dips * (density / 160)。举个例子,在DPI为240的屏幕上,1个DIP等于1.5个物理像素。我们强烈推荐你用DIP来定义你程序的界面布局,因为这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。
支持的屏幕分辨率范围
1.5及更早版本的Android系统,在设计的时候假定系统只会运行在一种分辨率的设备上——HVGA(320×480)分辨率,尺寸为3.2寸。由于系统只能工作在一种屏幕上,开发人员就可以针对那个屏幕来编写自己的程序,而无需去考虑程序在其他屏幕上的显示问题。
但自从Android 1.6以来,系统引入了对多种尺寸、多种分辨率屏幕的支持,以此满足拥有各种配置的新平台的运行需求。这就意味着开发人员在针对Android 1.6或更新版系统开发程序的时候,需要为自己的程序在多种分辨率的屏幕上良好显示作出额外的设计。
为了简化程序员面在对各种分辨率时的困扰,也为了具备各种分辨率的平台都可以直接运行这些程序,Android平台将所有的屏幕以密度和分辨率为分类方式,各自分成了三类:
·三种主要的尺寸:大,正常,小;
·三种不同的密度:高(hdpi),中(mdpi)和低(ldpi)。
如果需要的话,程序可以为各种尺寸的屏幕提供不同的资源(主要是布局),也可以为各种密度的屏幕提供不同的资源(主要是位图)。除此以外,程序不需要针对屏幕的尺寸或者密度作出任何额外的处理。在执行的时候,平台会根据屏幕本身的尺寸与密度特性,自动载入对应的资源,并把它们从逻辑像素(DIP,用于定义界面布局)转换成屏幕上的物理像素。
下表列出了Android平台支持的屏幕中一些比较常用的型号,并显示了系统是如何把它们分类到不同的屏幕配置里的。有些屏幕分辨率并不在下面的列表上,但系统仍会把它们归入下列的某一个类型中。
低密度(120),ldpi
中密度(160),mdpi
高密度(240),hdpi
小屏幕
·QVGA(240×320),2.6~3.0寸
普通屏幕
·WQVGA(240×400),3.2~3.5寸
·FWQVGA(240×432),3.5~3.8寸
·HVGA(320×480),3.0~3.5寸
·WVGA(480×800),3.3~4.0寸
·FWVGA(480×854),3.5~4.0寸
大屏幕
·WVGA(480×800),4.8~5.5寸
·FWVGA(480×854),5.0~5.8寸
如上表所示,所有分辨率的屏幕,都围绕在基准屏幕周围,而基准屏幕在分类中,为“正常”尺寸,与“中”密度。之所以用HVGA屏幕作为基准屏幕,是因为所有针对Android 1.5或更早的程序都是针对这片屏幕所写的(因为只支持这一片),比如T-Mobile G1。
虽然系统支持上面9种不同配置的屏幕,但你并不一定需要为它们都提供各自不同的资源。系统已经提供了足够鲁棒(就是在各种恶劣环境下正常工作,对环境变化不敏感)的兼容特性,用于在各种不同的屏幕上良好显示你的程序。这在下面的文档中会详细描述,如果你需要更多的资料,请查看“与屏幕无关的最佳实践”。
注:本文转自
http://bbs.meizu.com/viewthread.php?tid=1889083&page=1
分享到:
相关推荐
### Android图标设计标准与原则详解 #### 一、引言 在移动应用开发过程中,图标设计不仅是提升用户体验的重要环节,更是塑造品牌形象的关键因素之一。良好的图标设计能够为用户提供直观的操作指引,同时也能够增强...
在Android开发中,屏幕适配是一项至关重要的任务,因为它确保应用能在各种不同尺寸和密度的设备上正常工作。本文将深入探讨Android的屏幕适配,特别是ldpi、mdpi、hdpi、xhdpi和xxhdpi这些不同的屏幕密度概念。 ...
9. **优化资源文件**:将动画相关的资源文件放在不同的资源目录下,如将hdpi、xhdpi等不同分辨率的图片放在相应的目录,系统会根据设备的屏幕密度自动选择合适的图片,避免加载过高分辨率的图片。 10. **适时释放...
UI设计的要素包括创建适应高分辨率屏幕的资源,确保可点击元素足够大,遵循Android的图标设计准则,使用适当的间距,支持D-pad和trackball导航,正确管理活动堆栈,处理屏幕方向变化,利用主题、样式和资源来减少...
Android的设计图标通常遵循Material Design指南,这是谷歌在2014年推出的一种设计语言,旨在提供统一、直观且富有表现力的用户体验。尽管此资源包的日期较早,但它仍然可以反映出当时Android平台对图标设计的基本...
综上所述,遵循Android UI设计规范,不仅可以提高应用的视觉吸引力,还能提升用户体验,使得应用在各种设备上运行流畅,交互自然。设计师需要关注屏幕适配、触摸反馈、尺寸比例、文字处理和图标设计等多个方面,确保...
1. **PNG格式的优势**:PNG格式的图标具有清晰的边缘和高分辨率,适合在各种屏幕密度的设备上使用。它支持24位色彩,同时提供了一个8位通道用于透明度信息,使得图标可以有半透明效果,更符合现代设计的趋势。 2. *...
首先,Android开发中的资源管理涉及到多个方面,包括图像资源、字符串资源、布局资源等。在本案例中,重点是图像资源。开发者通常会将各种类型的图片(如PNG、JPEG或SVG)放在项目的res/drawable目录下,以便根据...
在Android开发中,图片是内存消耗的重要因素之一,尤其是在处理大量或高分辨率图片时,可能导致应用程序出现内存溢出(Out Of Memory,简称OOM)问题。下面将详细探讨图片与内存的关系,以及如何优化图片使用以减少...
2. **Android UI设计理念与注意事项**: - **设计理念**: - 清晰而不简陋,注重内容呈现。 - 用户体验为核心,保持一致性,同时可适度创新。 - 利用云端服务提升用户体验,如数据存储和同步。 - **优秀UI设计...
这是因为Bitmap占用大量的内存,尤其是当加载大尺寸或高分辨率图片时。这个问题在低内存设备上尤为突出。本文将深入探讨Android Bitmap导致的`OutOfMemoryError`问题,以及如何有效地解决这个问题。 首先,我们需要...
3. **一致性与吸引力**:保持设计的一致性,同时引入适量变化以吸引用户。 4. **云服务集成**:通过云同步增强用户体验,实现多设备间的无缝衔接。 **优秀界面设计准则**: 1. **关注用户**:了解目标用户群体,...
1. **不要照搬其他平台上的UI设计**:确保应用具有原生Android的感觉,平衡品牌展示与整体平台风格。 2. **不要过度使用模态进度条和确认对话框**:避免过多打断用户体验,简化交互流程。 3. **不要使用固定的绝对...
** 根据Android提供的尺寸和密度分类指南来设计适应不同设备的界面。 综上所述,遵循这些原则和准则可以帮助开发者创建出既美观又实用的应用程序界面,提高用户体验的同时也增加了应用的吸引力和竞争力。
- 作为三星的最新力作,2021版Galaxy Note 10.1具备顶级硬件配置,包括10.1英寸的高分辨率屏幕、强大的处理器和独特的S Pen手写笔功能,为用户提供了极致的生产力和娱乐体验。 这些平板电脑各具特色,从性价比到...
Vector Drawable则是Android Studio中的矢量图形资源,可以生成适应不同密度屏幕的高清图标。 最后,测试是检验图标设计效果的关键步骤。在各种设备和分辨率下测试图标,确保它们在不同环境下都能保持清晰、易识别...
Kotlin是一种现代、类型安全且富有表现力的编程语言,被广泛用于Android开发。在这个类中,开发者可能扩展了Android原生的EditText类,并添加了清除按钮的功能。这通常包括以下几个步骤: 1. **创建视图**:在...
3. 利用Android的资源密度适应机制:为不同密度的设备提供相应的图片资源,以减少低密度设备加载高分辨率图片造成的内存压力。 4. 使用异步加载:避免在主线程中加载图片,防止UI卡顿,可以使用如Glide、Picasso等...
S5PV210处理器与Android操作系统高度兼容,提供全面的硬件驱动和API支持,使得开发者可以充分利用硬件资源,开发出高效、流畅的移动应用。Android平台的开放性和灵活性,加上S5PV210的硬件优势,使得基于该处理器的...