【Android游戏开发二十七】讲解游戏开发与项目下的hdpi 、mdpi与ldpi资源文件夹以及游戏高清版本的设置

 李华明Himi 原创,转载务必在明显处注明:
转载自 【黑米GameDev街区】 原文连接:  http://www.himigame.com/android-game/389.html


         今天一个开发者问到我为何游戏开发要删除项目下的hdpi、mdpi和ldpi文件夹;下面详细给你们解答一下:css

         首先童鞋们若是看过我写的《【Android游戏开发二十一】Android os设备谎话分辨率的解决方案!》这一节的话都应该知道Android从1.6和更高,Google为了方便开发者对于各类分辨率机型的移植而增长了自动适配的功能;html

        自动适配的原理很简单,只要你创建的项目是1.6或者更高都会看到项目下有drawable-hdpi、drawable-mdpi、drawable-ldpi 三个文件夹,这三个文件夹分别放置高清分辨率、中分辨率、低分辨率的资源文件;那么若是你的项目在高清分辨率上运行的话,系统会默认索引drawable-hdpi文件夹下的资源,其余雷同;android

         那么既然系统会自动找匹配的文件夹,那么确定会出现找不到的状况,好比当前你的应用在高清分辨率运行,假设代码中加载一张“himi.png”的图,那么系统首先会去drawable-hdpi文件夹下去找这张图,一旦找不到,系统会再到其余drawable下寻找,再假设你其实把这张“himi.png”放在了drawable-mdpi中,那么系统会默认把这张图片放大;反之同样,若是你在低分辨率中运行加载一张图片的话,一旦你将图片放入高清的drawable-dpi中,那么系统默认缩小这张图;spa

        总结来讲:若是你的应用想适配高、中、低分辨率,那么你须要有3套图放入对应的文件夹中,这样系统会智能加载;若是你就不想让系统智能寻找缩放的话,有两种方式能够解决:.net

       1.删除drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,建立一个drawable文件夹便可;code

       2.将资源文件放入assets中,由于assets中的资源系统永远不会为其生成id,因此不会智能缩放;htm

      -------------------下面介绍第二点,如何让你的游戏应用高清blog

      其实仍是在《【Android游戏开发二十一】Android os设备谎话分辨率的解决方案!》中介绍过,1.6后android有了智能判断的缘故,你获取的屏幕宽高实际上是不许确的,详情能够参考【Android游戏开发二十一】Android os设备谎话分辨率的解决方案!》;那么这里要补充一点就是:索引

      若是你在AndroidMainFest 中,定义  <uses-sdk android:minSdkVersion="4" /> 就OK了!你会发现你的图片很清楚,其实也是由于android自动缩放形成的,上面说了,通常获取的分辨率会不正常(比正确的偏小)那么一旦你加上这一句以后,你的分辨率就正常了,因此就明显游戏质量高了一个档次。游戏

 

       这里再补充一下: 一旦你定义了<uses-sdk android:minSdkVersion="4" />,就是限制1.5SDK的手机没法安装你的程序;


      OK,继续忙了,你们尝试下吧~




原文连接: http://blog.csdn.net/xiaominghimi/article/details/6753961
相关文章
相关标签/搜索