本文主要讲解Android游戏开发中为什么要删除项目下的hdpi、mdpi和ldpi文件夹,以及怎样设置游戏的高清版本。
为什么要删除项目下的hdpi、mdpi和ldpi文件夹
首先童鞋们如果看过我写的Android游戏开发21:Android设备掩盖真实分辨率的解决方法及游戏引擎的用法简述这一节的话都应该知道Android从1.6到后面的版本中,Google为了方便开发者对于各种分辨率机型的移植而增加了自动适配的功能。
自动适配的原理很简单,只要你建立的项目是1.6或者更高版本的都会看到项目下有drawable-hdpi、drawable-mdpi、drawable-ldpi 三个文件夹,这三个文件夹分别放置高清分辨率、中分辨率、低分辨率的资源文件;那么如果你的项目在高清分辨率上运行的话,系统会默认索引drawable-hdpi文件夹下的资源,其他相同。
那么既然系统会自动找匹配的文件夹,那么肯定会出现找不到的情况,比如当前你的应用在高清分辨率运行,假设代码中加载一张“himi.png”的图,那么系统首先会去drawable-hdpi文件夹下去找这张图,一旦找不到,系统会再到其他drawable下寻找,再假设你其实把这张“himi.png”放在了drawable-mdpi中,那么系统会默认把这张图片放大;反之一样,如果你在低分辨率中运行加载一张图片的话,一旦你将图片放入高清的drawable-dpi中,那么系统默认缩小这张图。
总结来说:如果你的应用想适配高、中、低分辨率,那么你需要有3套图放入对应的文件夹中,这样系统会智能加载;如果你就不想让系统智能寻找缩放的话,有两种方式可以解决:
1、删除drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,创建一个drawable文件夹即可;
2、将资源文件放入assets中,因为assets中的资源系统永远不会为其生成id,所以不会智能缩放;
如何让你的游戏应用高清
其实还是在第21讲中介绍过,1.6后android有了智能判断的缘故,你获取的屏幕宽高其实是不准确的,那么这里要补充一点就是:
如果你在AndroidManifest 中定义 <uses-sdk android:minSdkVersion=”4″ /> 就OK了!你会发现你的图片很清楚,其实也是因为android自动缩放造成的,上面说了,一般获取的分辨率会不正常(比正确的偏小),那么一旦你加上这一句之后,你的分辨率就正常了,所以就明显游戏质量高了一个档次。
最后再补充一下: 一旦你定义了<uses-sdk android:minSdkVersion=”4″ />,就是限制1.5SDK的手机无法安装你的程序。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。