文档章节

屏幕适配的原理

aabbc
 aabbc
发布于 2015/01/20 15:19
字数 899
阅读 43
收藏 0


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

 

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

 

不同分辨率对应的文件夹

 

首先我们知道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将会开始普及,所以笔者认为很快情况就会有所变化了。

 

                                文章来源:TestBird手游测试研究中心


本文转载自:http://www.testbird.com/2015-01-19-2/

aabbc
粉丝 2
博文 30
码字总数 11989
作品 0
普陀
私信 提问
屏幕适配的原理

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

kyzg2211
2016/07/08
167
0
骚年你的屏幕适配方式该升级了!-SmallestWidth 限定符适配方案

原文地址: https://www.jianshu.com/p/2aded8bb6ede 以下是 骚年你的屏幕适配方式该升级了! 系列文章,欢迎转发以及分享: 骚年你的屏幕适配方式该升级了!(一)-今日头条适配方案 骚年你的屏...

JessYan
2018/09/19
0
0
遇到了一个神级适配的项目

遇见一个项目,添加页面的时候不用做适配,直接就可以适应各个屏幕,不用autolayout,没有用storyboard,就算是手写的View,也可以自动适配,就是类似于在5的屏幕上将页面布好了之后,在6或6...

chebaodaren
2015/10/09
353
6
Android技能树 — 屏幕适配总结

前言: 关于屏幕适配,几乎每隔一段时间就会看见有人发出来说XXX方案,实现超级简单的适配方式等等。所以我把我目前了解过的常用的适配方案做个总结,并简单说说原理,从而让大家也初步了解各...

青蛙要fly
2018/07/21
0
0
骚年你的屏幕适配方式该升级了!-今日头条适配方案

原文地址: https://www.jianshu.com/p/55e0fca23b4f 以下是 骚年你的屏幕适配方式该升级了! 系列文章,欢迎转发以及分享: 骚年你的屏幕适配方式该升级了!(一)-今日头条适配方案 骚年你的屏...

JessYan
2018/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
8
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部