前言:

我们在进行移动设备开发的时候,我们常常会准备不同大小的图片资源以适应不同大小的设备,下面我称普清图片资源和高清图片资源。那么如何做到图片资源的自适应呢?下面我来用一个demo展示一下这个效果的实现。

工具介绍:

IOS开发有一个非常好用的图片合成工具,能够让多个png图片合成一个大的资源图片,也可以生成普清和高清的两种资源图片,这个工具就是TextureParker。

如何用TextureParker生成资源图片

打开TP工具,然后Add Sprites,添加上你想要添加的图片资源(最好是png图片),然后点击AutoSD选项->Cocos2d-x HD/SD->Apply。然后看看路径Data file和Texture file上是否加上HD/,如果加上了那再点击Publish导出来就OK了。

实现步骤:

1.新建项目文件,并且将HD和SD文件夹导入到项目的Resources中

2.在AppDelegate的applicationDidFinishLaunching方法中添加图片的自适应代码

//图片自适应
TargetPlatform target = getTargetPlatform();
//如果是iPhone设备
if (target == kTargetIphone) {
CCSize size = CCEGLView::sharedOpenGLView()->getFrameSize();
if (size.width == 480) {
CCFileUtils::sharedFileUtils()->addSearchPath("SD/");
CCLog("普清");
}
else
{
CCFileUtils::sharedFileUtils()->addSearchPath("HD/");
CCLog("高清");
}
}

3.在主view中调用图片资源创建精灵

CCSize size = CCDirector::sharedDirector()->getWinSize();

    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("pic.plist");
CCSpriteFrame * sp1 = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("alien.png");
CCSprite * sp = CCSprite::createWithSpriteFrame(sp1);
sp->setPosition(CCPointMake(size.width/2, size.height/2+40));
this->addChild(sp);

测试:

选择不同的设备,例如选择硬件->设备->iPhone跟iPone3.5(inch),就会看到调用的不同的资源效果。

[cocos2d-x]针对不同的设备,选取不同的自适应图片的更多相关文章

  1. @media screen 针对不同移动设备——响应式设计

    概念: device-pixel-ratio:定义输入设备屏幕的可视宽度与可见高度比率. device-width:输入设备屏幕的可视宽度. orientation :屏幕横竖屏定向.landscap ...

  2. 如何利用rem在移动端不同设备上让字体自适应大小

    本人也是一个刚刚接触前端的小虾米,对于移动端这一块更是一抹眼的黑,前端时间接手开始一个移动端的项目,在网上查询了一下rem的作用,百度搜索下来全是介绍rem的作用原理的(rem是根据根元素计算的),然 ...

  3. 得到设备是何种iPhone设备 + 怎么获得启动页面图片

    一.前言 今天做一个功能,需要动态的获得启动页,然后根据不同设备去使用不用的启动页图片. 二.正文 常规来说,我们直接判断是何种设备,然后通过name去获得图片选择性加载即可.但是实际上遇到的两个问题 ...

  4. Android之本地相冊图片选取和拍照以及图片剪辑

    转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有非常多Android开发者在日常开发中,因为项目需求,须要我们的A ...

  5. 在触屏设备上面利用html5裁剪图片

    前言 如今触屏设备越来越流行,并且大多数已经支持html5了.针对此.对触屏设备开发图片裁剪功能, 让其能够直接处理图片.减轻服务端压力. 技术点 浏览器必须支持html5,包含fileReader. ...

  6. 在触屏设备上面利用html5裁剪图片(转)

    前言 现在触屏设备越来越流行,而且大多数已经支持html5了.针对此,对触屏设备开发图片裁剪功能, 让其可以直接处理图片,减轻服务端压力. 技术点 浏览器必须支持html5,包括fileReader, ...

  7. 移动设备的HTML页面中图片实现滚动加载

    如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时, ...

  8. Azure IoT Hub 十分钟入门系列 (4)- 实现从设备上传日志文件/图片到 Azure Storage

    本文主要分享一个案例: 10分钟内通过Device SDK上传文件到IoTHub B站视频:https://www.bilibili.com/video/av90224073/ 本文主要有如下内容: ...

  9. [device-orientation] 使用手机设备的方向感应实现图片选择

    <div class="main"> <h2>Device Orientation</h2> <table> <tbody&g ...

随机推荐

  1. 静态方法中为什么不能使用this

  2. 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字

    题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlog ...

  3. CKEditor 图片上传

    可以做如下配置: CKEDITOR.replace('editor1',{ filebrowserBrowseUrl:'/browser/browse.php', filebrowserUploadU ...

  4. Dream

    即使下着雨,天空依旧明亮,因为远方有我的梦想.   ——forever97

  5. WebKit学习要点

    <体系结构详解> 1. 浏览器功能结构 2. 浏览器结构 3. Webkit体系结构 4. WebKit目录结构 5. WebKit编译 <HTML引擎详解> 1. HTML语 ...

  6. 关于android源码中的APP编译时引用隐藏的API出现的问题

    今天在编译android源码中的计算器APP时发现,竟然无法使用系统隐藏的API,比如android.os.ServiceManager中的API,引用这个类时提示错误,记忆中在android源码中的 ...

  7. PHP自学之路-----javascript基础入门

    Javascript概述: Javascript是基于对象和事件的脚本语言.特点; 1.安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互. 2.跨平台性. JavaScript与HTML ...

  8. 让自己的apk可以被别人用二维码下载

    通过二维码下载的流程是, 1.截获地址当有一个url被二维码扫描后的被截获,请先确认能够被截获. 2.接受intent无论是把这个消息的地址发送给activity,还是reciver,都要进入到你的程 ...

  9. C#中继承,集合(Eleventh day)

    又到了总结知识的时间,今天在云和学院继续学习了继承的一些运用,和集合的运用.下面就总结下来吧 理论: 显示调用父类的构造方法,关键字: base:构造函数不能被继承:子类对象被实例化的时候会先去主动的 ...

  10. SPOJ8222 Substrings( 后缀自动机 + dp )

    题目大意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值.F(1)..F(Length(S)) 建出SAM, 然后求出Right, 求Right可以按拓扑序dp..Right ...