转自:http://venus-chen.iteye.com/blog/970498
Android的支持多屏幕的原理是一套内置的兼容性特征,即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。虽然android平台负责大部分解析应用的工作,但是也为开发者提供了如何控制应用呈现的两个关键方法,它们的使用方法如下:
Android平台中支持一系列你所提供的指定大小(size-specific),指定密度(density-specific)的合适资源。指定大小(size-specific)的合适资源是指small
, normal
, large
, and xlarge。
指定密度(density-specific)的合适资源,是指ldpi
(low), mdpi
(medium), hdpi
(high), and xhdpi
(extra high).
Android平台还提供 <supports-screens>
manifest文件节点元素,它的属性包括: android:smallScreens
,
android:normalScreens
, android:largeScreens
, and android:xlargeScreens.
它可以用来指定应用程序支持哪些尺寸屏幕。
<supports-screens>节点另外一个属性
android:anyDensity可以
用来指定应用程序是否支持内置支持多密度屏幕的机制。
在应用程序运行的时候,android平台将提供三种方式支持应用程序,以确保应用程序以尽可能好的效果呈现在当前设备屏幕上,这三种具体方式如下:
1、预前缩放(pro-scaling)资源(如图片)
基于当前屏幕的密度,android平台会从应用程序自动加载指定大小,与密度的资源(均未缩放),如果没有适配的资源可用,平台将加载默认文件夹下的资源(即drawable文件夹中的资源)并根据需要缩小或放大资源以适配当前屏幕的一般屏幕密度。除非资源被加载到指定密度目录下,一般情况平台加载的默认资源是展现效果最好的,展现在基于最基本密度为"medium" (160)的屏幕上。
例如:如果当前屏幕的密度为高密度(high),平台将加载drawable-hdpi文件夹下的资源,使用时并不缩放图片大小。如果drawable-hdpi中无资源可用,或无此文件夹,平台将加载默认资源即drawable文件里的资源,并且放大图片大小,从基本密度到最大密度。
2、自动缩放像素维值与坐标
如果应用程序不支持多屏幕,平台将自动缩放任何绝对像素坐标,像素维值,像素数学。平台如此做是为确保像素定义的屏幕元素更接近屏幕物理尺寸呈现,像它们在最基本密度160上表现的一样。平台对于应用程序的缩放很明显,并且会认为应用程序屏幕大小为缩放后的像素维值而不是物理像素维值
例如:假定用一个WVGA的高密度屏幕,480*800,相当于传统HVGA的屏幕大小,但是运行一个不支持多屏幕的应用程序。在这种情况下,系统在获取屏幕大小时,会误认为是320*533。然后,会使从坐标(10,10)到坐标(100,100)的长方形失效,系统将自动缩放坐标到合适大小,即从(15,15)到(150,150)。这种情况也会发生在其它地方,如果应用程序运行在低密度的屏幕上,坐标也会被缩小。
分享到:
相关推荐
自适应图标允许应用程序在不同设备上展示统一且美观的图标,无论设备的系统版本或启动器如何。本篇文章将深入探讨基于Kotlin开发的Android自适应图标实验应用——AdaptiveIconPlayground,以帮助开发者更好地理解和...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容。当我们需要在WebView中加载本地图片并让其自适应布局大小时,会涉及到一系列的技术点。以下将详细阐述如何实现这一功能。 ...
Android自适应屏幕布局 Android自适应屏幕布局是指在Android系统中实现屏幕自适应的布局方式,通过使用不同的布局...屏幕自适应是Android开发中的一项重要技术,可以使应用程序在不同的屏幕尺寸和方向下都能正常运行。
在Android开发中,屏幕自适应是一项至关重要的技术,它确保应用程序在不同尺寸和分辨率的设备上都能呈现良好的用户体验。本文将深入探讨Android屏幕自适应的原理、方法和案例,帮助开发者掌握这一关键技能。 首先,...
在开发Android应用时,确保用户界面能够自适应各种屏幕尺寸和分辨率是非常重要的。这不仅涉及到用户体验的问题,还关系到应用能否覆盖更广泛的用户群体。下面将详细介绍与屏幕自适应相关的几个关键概念。 ##### 1. ...
对于开发者而言,如何让一款应用程序能够完美适配各种屏幕成为了开发过程中的重要挑战之一。幸运的是,Android系统内置了一套完善的机制来解决这一问题——即所谓的UI自适应功能。本文将深入探讨Android系统是如何...
### Android自适应屏幕翻转详解 #### 一、引言 在移动开发领域,特别是针对Android平台的应用开发,实现良好的用户交互体验至关重要。...掌握这些技术细节,将有助于开发者创建更加流畅、用户友好的Android应用程序。
在Android应用开发中,XML文件扮演着至关重要的角色,特别是在创建自适应分辨率的程序时。XML,即可扩展标记语言,被广泛应用于Android系统中,作为布局文件来构建应用程序的用户界面。它允许开发者将界面设计与逻辑...
Android 屏幕自适应是一个非常重要的问题,如何使应用程序能够适应不同的屏幕尺寸和设备类型是一个棘手的问题。 2.Android 硬件的“碎片化”问题 由于开放手机联盟的成立, Android 硬件的“碎片化”问题变得非常...
在Android应用开发中,确保应用程序能够自适应各种手机屏幕大小和分辨率是至关重要的。这不仅可以提供优秀的用户体验,也是Google Play商店对应用质量的基本要求。以下是一些关键知识点,帮助开发者实现这一目标: ...
这个名为"Android屏幕自适应计算工具.exe"的文件很可能是一个小型应用程序,它可以方便地进行快速计算。在使用时,用户只需输入或导入设计图中的像素尺寸,工具就会自动计算出dp值,并可能提供相应的代码片段,供...
本文将详细介绍如何在Android应用中实现屏幕自适应,包括布局、资源图片的选择以及如何配置AndroidManifest.xml等。 #### 一、布局自适应 在Android中,可以通过以下几种方式来实现布局自适应: 1. **基于不同...
在Android应用开发中,横竖屏切换和屏幕自适应是两个关键的概念,它们关系到应用程序在不同设备和屏幕尺寸上的用户体验。以下是对这两个主题的详细解释: **横竖屏切换** 1. **屏幕方向检测**:Android系统可以...
在开发Android应用时,创建一个吸引人的启动画面(Splash Screen)是提高用户体验的重要步骤。对于使用Embarcadero Delphi XE10.2.2的开发者来说,配置自适应和沉浸式状态条的Splash Screen涉及到一些关键的技术点。...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。然而,在不同的Android版本中,WebView的特性和行为可能存在差异,这可能导致开发者遇到一些意想不到的问题。在Android ...
Android应用程序“计算器”是基于谷歌Android操作系统开发的一款实用工具,它为用户提供基础到高级的计算功能,以便在移动设备上进行数学运算。Android平台以其开放性和丰富的开发工具集,使得开发者可以创建出界面...
随着5G技术的普及,其高速的数据传输能力和低延迟特性为移动设备的使用带来了革命性的变革,进一步推动了移动应用尤其是Android应用的发展。 6. 三维面部模型的应用领域:生成的三维面部模型可以在多个领域有所应用...
文章《基于Android的自适应移动云计算应用框架》探讨了一种新的框架,该框架旨在根据应用需求和环境条件,动态地决定计算任务是在本地设备执行还是迁移到云端。 论文摘要指出,计算迁移并非总是最佳解决方案,因此...
在这个demo中,我们将深入探讨如何使应用程序在不同尺寸和密度的屏幕上看起来自然、协调。 首先,理解Android屏幕的基本概念是关键。Android将屏幕分为四个主要尺寸类别:小、中、大和超大,以及三种密度:低(ldpi...