前言:

我们在进行移动设备开发的时候,我们常常会准备不同大小的图片资源以适应不同大小的设备,下面我称普清图片资源和高清图片资源。那么如何做到图片资源的自适应呢?下面我来用一个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. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

     如果某企业在 Windows Azure 上托管某个应用程序,该应用程序会在某个特定时间暴露到 Internet,以用于商业用途.公共 Internet 带来 客户的同时也带来了攻击者. Tim ...

  2. JAVA GUI学习 - JDialog模式、非模式窗口组件学习

    /** * JDilog学习笔记 * @author Wfei * */ public class JDialogKnow extends JFrame { JDialog jDialog; JBut ...

  3. Eclipse创建新项目时无法输入项目名的解决方法

    放假耍了那么久,也是该收心忙活了. 今天打开Eclipse新建项目时,发生了一个很奇怪的情况,就是在下面这个位置的输入框无法输入. 经过百度之后,发现解决方案是(原地址点我) Eclipse图标右键 ...

  4. [python网络编程]DNSserver

    在上一篇中,使用scrapy改动源IP发送请求的最后我们提到因为hosts文件不支持正则,会导致我们的随机域名DNS查询失败. 使用DNS代理服务器能够解决问题, 以下是我用gevent写的小工具.非 ...

  5. 3.3 用NPOI操作EXCEL--生成一张工资单

    这一节,我们将综合NPOI的常用功能(包括创建和填充单元格.合并单元格.设置单元格样式和利用公式),做一个工资单的实例.先看创建标题行的代码: //写标题文本 HSSFSheet sheet1 = h ...

  6. 重启IIS常见命令

    重启IIS常见命令 http://jingyan.baidu.com/article/4ae03de30d6cfa3efe9e6b4a.html

  7. 让正则表达式变简单(PythonVerbalExpressions)

    一.安装pip install VerbalExpressions二.导入from verbalexpressions import VerEx三.示例 使用案例一: 测试URL是否有效 from v ...

  8. (Problem 22)Names scores

    Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-tho ...

  9. 【操作系统】:Main features of the X86-64

    The combination of the new hardware supplied by Intel and AMD ,and the new versions of GCC targeting ...

  10. F#实现的单链表(函数式的思想)

    // 在 http://fsharp.net 上了解有关 F# 的更多信息 // 请参阅“F# 教程”项目以获取更多帮助. type list = | Nil | Cons of int * list ...