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)。这种情况也会发生在其它地方,如果应用程序运行在低密度的屏幕上,坐标也会被缩小
3、在大屏幕上的兼容模式
分享到:
相关推荐
Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。本文就介绍了4中Android屏幕自适应解决方案。 一、细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案。 该...
实现Android屏幕多点触摸测试的实现功能,测试屏幕是否支持多点触摸
androidN多屏幕支持例子
Android多屏幕支持Demo
AutoLayout-Android, 支持多个屏幕的简单方法 面向Android的自动布局支持多个屏幕的简单方法。自动调整大小:每次使用屏幕尺寸时,写入。。自定义自适应策略。支持的纵横比。这里项目是来自 hongyangandroid/android...
讲述Android多屏幕适配策略代码,详细列举了支持多屏幕适配的例子。
android触摸测试,支持多指同时划动,主要用于安卓系统下对触摸驱动的测试,代码中也加了多指坐标点的打印,可以帮助排查触摸问题。当然安卓的开发者选项中也有指针的显示界面,但自己写的代码可以灵活增加一些日志...
Android屏幕大小和精度介绍包括:多分辨率支持,术语和概念,支持的屏幕分辨率范围
该Demo实现了,Android环境下的工控机连接多块显示屏之后的分屏显示。
Android屏幕录制代码,支持音频录制!可以直接运行,Android屏幕录制。
Android手机屏幕RTMP推流工具是一款可以将安卓手机屏幕上的任何内容推送到任意一款rtmp服务器上的工具,不仅可以分享手机屏幕内容,还可以分享手机上正在播放的视频、正在捕获的相机内容、其它APP正在播放的视频等...
支持android4.2 顺时针旋转屏幕,需要在应用程序里旋转,这个只是一个库文件。
编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。
Android autolayout 屏幕适配,测试工程中含有Fragement,listview,gridview,万能适配
应用于mini2440上的Android 支持Sony X35屏幕的方法,如果有需要还可以下载系统驱动
Android 屏幕自适应方向尺寸与分辨率,包括屏幕界面布局、多分辨率支持、获取屏幕尺寸、屏幕横屏与竖屏等,android 模拟器横屏,android 虚拟机横屏,android 判断横屏,android 禁止横屏,android 强制横屏,...
两个android设备连接同一wifi,分别安装两个apk,实现将一个设备的屏幕投射给另一个android设备,视频码率清晰度可配置。
Android视频播放器(支持横竖屏切换)
多种设备支持:Android操作系统可以运行在多种不同类型的设备上,包括手机、平板电脑、智能电视、汽车导航系统等。 此外,Android系统还有一些常见的问题,如应用崩溃、电池耗电过快、Wi-Fi连接问题、存储空间不足、...
关于Android屏幕适配的概念,屏幕自适应,如何支持多屏幕,多屏幕测试及一些编码建议