屏幕适配的原理

初级游戏开发者通常都会遇到屏幕适配的问题,由于安卓手机屏幕差异很大,不同的手机屏幕大小各不相同,同时屏幕不同分辨率也不同,因此在对手机游戏进行测试的时候,屏幕适配的工作就显得非常重要了。

接下来我们谈谈屏幕适配那些事儿。

不同分辨率对应的文件夹

首先我们知道android工程目录res下有四个文件夹,drawable-hdpi、drawable-mdpi、drawable-ldpi、drawable-xhdpi,主要是为了支持多分辨率的图片。如果你制作的游戏切图是480x800的切图,就应该放到drawable-hdpi目录下,如果是320x480的切图,就应该放到mdpi目录下。如果是720x1280的,通常会放到xhdpi目录下。

图片缺省时的处理方式

 

安卓系统在加载图片的时候有一套严格的规则,它会事先判断手机屏幕的分辨率,然后根据分辨率去加载对应文件夹里的图片。如果找不到,则会从drawable或者其他drawable-*文件夹中寻找。找到图片以后,系统会对图片尺寸与手机屏幕进行比对,尺寸一致则会正常显示,而遇到尺寸不一致的那么系统会根据一定规律对图片尺寸进行缩放,然后显示在屏幕上。此时,由于图片尺寸经过缩放,所以屏幕上的显示效果会受到影响,因此通常在游戏测试阶段,测试者应该准备好不同尺寸搭配不同分辨率的设备进行多次校验,如果是在上线前希望能进行大规模的手机游戏兼容性测试的话则可以尝试使用诸如:TestBird这样的第三方手游自动化测试平台。

不同比例的屏幕常见适配方式

通常成熟的游戏厂商针对不同比例以及不同分辨率的屏幕,会有一套自有的解决方案。而对于中小规模的开发团队或者个人开发者而言,往往没有时间专门对不同尺寸的屏幕进行适配,比如常见的安卓设备屏幕比例为16:9,而像魅族的屏幕比例则为15:9,IPad则为4:3,这样的情况下屏幕适配就变得异常麻烦。常见的图片缩放在这样的情况下会造成屏幕边缘内容的丢失,通常最好的办法是尽可能把图片缩放到最大,保留部分没有显示的黑边区域,而这样的的好处是可以不丢失任何内容,但缺点是黑边区域实际会影响到玩家的使用体验。最早在IPad尚未普及时,为了保证游戏尽可能多的兼容IPad,因此大量的采用了这样的适配方案。

另外值得一提的是,如果制作手游切图的话母版可以尽可能用720P,因为目前主流机型的屏幕分辨率是720P,720P在对图片进行缩放的过程中放大到1080P时不会感到特别模糊,缩小到480P时也不会看不清内容。这是目前很常用的一个屏幕适配解决方案,但由于15年1080p将会开始普及,所以笔者认为很快情况就会有所变化了。

时间: 2024-10-15 01:26:53

屏幕适配的原理的相关文章

Android屏幕适配原理

大纲 1.android中res目录下的文件夹所对应屏幕尺寸 2.用dp表示尺寸的原理 3.对于720p尺寸的适配需要注意什么 4.ui切图按什么尺寸给最好 参考:http://www.360doc.com/content/12/0301/17/5087210_190881395.shtml 几个概念: 1) 屏幕密度(dpi) :dot per inch,即每英寸像素数. ldpi(120),mdpi(160),hdpi(240),xhdpi(320) 计算方法: 以480x854,4.0in

cocos2d-x屏幕适配原理分析

cocos2d-x作为著名的cocos2d游戏开发框架的C++实现者,最近一年发展迅猛.越来越多的app使用它实现快速多平台部署,从最初的ios,android,win32等到新近的html5,实现移动,客户端到浏览器全覆盖,不得了~~ 开发移动应用的屏幕适配和爱情一样是一个从洪荒时代就存在的永恒命题,根本目的是实现在不同设备上用户体验的统一. cocos2d-x在cocos2d-2.0-x-2.0.4版本之前没有提供解决的方案,开发者只能自己解决,其中一些方法见 这里从2.0-x-2.0.4开

移动端屏幕适配原理以及方法讲解

序言: 今天周日,我正坐在黄埔区图书馆,思索着关于移动端屏幕适配的问题.作为一名年纪轻轻的前端马蓉,不,是码农,移动端屏幕适配的方案的帖子没读过100篇吧,也读过几十篇了.可是今天我又在思考这个问题了,因为下周我有个关于移动端适配的演讲.人生这么短暂,我却把有限的时间奉献到了无限的前端道路上. 根据我不(cong)太(ming)灵(jue)活(ding)的大脑的努力思考.我发现现阶段比较流行移动端适配原理只有一个--就是对元素进行放大和缩小,具体到执行的时候方法有两个(求不打脸). 1个是网页大

手机屏幕适配原理及实现

手机屏幕是用户与 App 最直接的交互点 不同的分辨率下用户对我们的 App 具有明显的感观差异,主流分辨率的更新迭代却又完全独立于 App 进行.这让我们想要使 App 在绝大多数主流手机上都保持感观.体验的一致性提出了很大的挑战. 屏幕尺寸 严格来说,屏幕尺寸实际被物理尺寸和显示分辨率两个部分定义. 而我们今天对各类手机.Pad 设备所说的屏幕尺寸,只指物理尺寸. 如果一块手机屏幕的物理尺寸是 5.5 英寸,即是指该手机屏幕对角线的长度. 屏幕分辨率 屏幕分辨率是指屏幕图像的精密度,是显示器

手机卫士13_屏幕适配_异常处理_盈利模式_混淆加密

今天是手机卫士最后一天 1,简易屏幕适配: ①使用线性,相对,帧布局,这三种常用布局在所有设备上几乎可以完整实现,多使用dp,sp,不要使用像素,dp,sp会自动适应屏幕 ②浮动窗体显示的距离问题:它show出来的距离就是像素,所以显示距离不会适应屏幕. 代码里接收的单位一般都是像素. 解决方式:把输入的数字转换成dp单位. 得到像素密度*像素 获得dp数据,根据屏幕实现的像素效果 通过工具类去转换成dp数据DesityUtils 2,应用程序的异常处理: 2.1 alpha版本:小范围的内部测

034-iOS屏幕适配-iOS笔记

学习目标 1.[了解]屏幕适配的发展史 2.[了解]autoResizing基本用法 3.[掌握]autoLayout 的基本用法 4.[掌握]autoLayout代码实现 5.[理解]sizeClass的基本用法 一.屏幕适配的发展史 随着iOS屏幕尺寸越来越多样化,屏幕适配也就越来越重要了. iphone1 - iphone3gs时代,window的size固定为(320,480).我们只需要简单计算一下相对位置就好了,不需要做屏幕适配. iphone4 - iphone4s时代,苹果推出了

Android 多屏幕适配

问题: 测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题. 按照思路整理如下: (一) 几个概念 1, Screen size 屏幕的尺寸,即对角线长度(单位inch-英寸) 2, Screen density屏幕密度,即单位长度像素点数(pots/inches) 3, Resolution 分辨率,即屏幕的总像素点数(width * height) 4, Density-independent pixel (dp)独立像素密度.标准是160dip.即

cocos2d 3.0 屏幕适配

1.解决方案 先直接给出解决方案,再慢慢解释,当然这个解决方案也不是完全完美的. [cpp] view plaincopy //如果是横屏游戏: glview->setDesignResolutionSize(960, 640, ResolutionPolicy::FIXED_HEIGHT); //一张960x640的背景显示 auto visibleSize = Director::getInstance()->getVisibleSize(); auto Bg = Sprite::crea

Cocos2D-X屏幕适配新解

” 阅读器 为了适应移动终端的各种分辨率大小,各种屏幕宽高比,在 Cocos2D-X(当前稳定版:2.0.4) 中,提供了相应的解决方案,以方便我们在设计游戏时,能够更好的适应不同的环境. 而在设计游戏之初,决定着我们屏幕适配的因素有哪些?简而言之只有两点:屏幕大小和宽高比.这两个因素是如何影响游戏的呢? •屏幕大小: 从小分辨率 480×320 到 1280×800 分辨率,再到全高清 1080p,从手机到平板,还有苹果设备的 Retina屏,这么多不同的分辨率,而且大小差距甚大,不可能做到一