【ANDROID游戏开发二十七】讲解游戏开发与项目下的HDPI 、MDPI与LDPI资源文件夹以及游戏高清版本的设置

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 

转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/389.html

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

首先童鞋们如果看过我写的《【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!》这一节的话都应该知道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,所以不会智能缩放;

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

其实还是在《【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,继续忙了,大家尝试下吧~

时间: 2025-01-30 13:09:54

【ANDROID游戏开发二十七】讲解游戏开发与项目下的HDPI 、MDPI与LDPI资源文件夹以及游戏高清版本的设置的相关文章

Silverlight+WCF 新手实例 象棋 主界面-事件区-游戏开始(二十七)

本专题出产简单原由: 一开始的初衷,只是想写个简单的单机BS人机对战版的,开始还下了点AI算法看看的: 但是写到最后,都写成了通讯版本的对战了,只因中间不小心看到了WCF的相关内容,顺便加了进来; 最后就定局了,反正新手实例,能加多点内容就加多点了. 关于原始初衷,后期再补上了.       好了,先上几个附加索引: 1:Silverlight+WCF 新手实例 象棋 在线演示 2:Silverlight+WCF 简单部署问题集 3:Silverlight4 ListBox bug 4:Silv

《iOS 6高级开发手册(第4版)》——2.3节秘诀:监测Documents文件夹

2.3 秘诀:监测Documents文件夹 iOS 6高级开发手册(第4版) iOS文档并没有受困在它们的沙盒中,你可以并且应该与用户共享它们.应该允许用户直接控制他们的文档,以及访问他们可能在设备上创建的任何资料.一个简单的Info.plist设置将使iTunes能够显示用户的Documents文件夹的内容,并使那些用户能够根据需要添加和删除资料. 在将来某个时间,你可能使用一个简单的NSMetadataQuery监测器来监视Documents文件夹并报告更新.在编写本书时,元数据监视还没有扩

Android资源文件夹及资源文件的详细介绍

与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,Android也支持并鼓励开发者把UI相关的布局和元素,用XML资源来实现.总结起来,Android中支持的资源有:•颜色值                 /res/values               以resources为Root的XML文件,定义形式为<color name>value</color>•字串                    /r

flex + java 开发中遇到的问题,flex_src下的文件夹为什么没有部署到tomcat中

问题描述 为什么在flex_src建的文件夹,不会部署到项目中去,我使用的是tomcat,项目名叫userman, 正常情况下,部署后flex_src所有文件都会部署到userman下去的,但是只有flex_src根目录下的文件才能 部署过去,而flex_src下的所有文件夹都没有部署过去,不知道是为什么... 如:   项目的结构:        crm                flex_src                      user                     

Android 原始资源文件的使用详解_Android

背景知识介绍与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/values/, /res/raw, /res/layout和/assets.Android也支持并鼓励开发者把UI相关的布局和元素,用XML资源来实现.总结起来,Android中支持的资源有:•颜色值                 /res/values               以resourc

过滤Android工程中多余资源文件的解决方法_Android

本文以实例讲述了过滤Android工程中多余资源文件的解决方法,很有实用价值!具体描述如下: 很多开发人员在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现的时候开发人员只是把新的资源覆盖到原来的资源文件夹中,随着版本的发布,在drawable或values中积累的无用资源越来越多,直到最后发布正式版的时候再想要删除这些多余的文件,于是不得不一个一个文件检查看是否有用,再决定要不要删除之. 有鉴于此,很有必要

过滤Android工程中多余资源文件的解决方法

本文以实例讲述了过滤Android工程中多余资源文件的解决方法,很有实用价值!具体描述如下: 很多开发人员在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现的时候开发人员只是把新的资源覆盖到原来的资源文件夹中,随着版本的发布,在drawable或values中积累的无用资源越来越多,直到最后发布正式版的时候再想要删除这些多余的文件,于是不得不一个一个文件检查看是否有用,再决定要不要删除之. 有鉴于此,很有必要

Android配置----DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法

[正文] Android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹,问题在于data文件夹没有权限,用360手机助手或豌豆荚也是看不见的. 有以下两种解决方法: 方法一:使用adb shell命令 注:android下的shell是不完整的,不能用-R参数,即使su到root帐号也执行不了.效果如下:  所以只能一个一个文件夹去设置权限.打开cmd控制台,依次执行以下命令: adb shell su chmod 777 /data chmod 7

android项目中com文件夹和src文件夹的关系是什么

问题描述 android项目中com文件夹和src文件夹的关系是什么 android项目中com文件夹和src文件夹的关系是什么 src里的文件夹里的java文件属于com文件夹的么 src文件夹里面的每一个java文件开头的第一行就声明com包 但是com包里面没有对应src里的java文件 解决方案 com 包只是一个结构.如果你们都公司是百度 那么你们的包路径差不多就是 com.baidu 是你们公司网址的倒置. Src是所有的资源,com包等文件都是在src下就是这样 解决方案二: 没有