游戏引擎AndEngine总结(九):三种加载图片资源的方法

原创 2012年03月30日 08:34:15

在AndEngine中,我们加载图片资源通常使用的是放在assets目录下的加载方式,其他的方式用到的很少,可能是因为例子里面只提供了这种方式的原因吧,其实AndEngine还为我们提供了其他两种方式,一种是app中常用到的从res目录下的图片资源的加载(通过R.java文件加载),另一种是从SD card或者沙盒中加载!后两种用到的可能比较小,但是有些需求就必须要用到其他方式,比如加载用户的照片资源等等。。。


1.从assets目录中加载资源,这是最基本也是最常用的方式,很多例子中都是这样用的,不解释了,上代码

// 传统的加载asset目录下资源的方式
		assetsBitmapTextureAtlas = new BitmapTextureAtlas(getTextureManager(), 128, 128);
		assetsTextureRegion = (TextureRegion) BitmapTextureAtlasTextureRegionFactory.createFromAsset(assetsBitmapTextureAtlas, 
				this, "assets_image.png", 0, 0);
		assetsBitmapTextureAtlas.load();


2.从res目录中加载资源,其实原理和asset是类似的,只是要通过R.java文件的方式来读取

// 传统的加载res目录下资源的方式,但是res目录下的资源会生成索引
		resBitmapTextureAtlas = new BitmapTextureAtlas(getTextureManager(), 128, 128);
		resTextureRegion = (TextureRegion) BitmapTextureAtlasTextureRegionFactory.createFromResource(resBitmapTextureAtlas, 
				this, R.drawable.res_image, 0, 0);
		resBitmapTextureAtlas.load();
这个用法很少,通常都是放在assets的目录下


3.从SD card中加载资源,这算是一个重点吧,因为有些需求会用到,但是可能大家没有注意过

(PS: 从沙盒中加载也是一样的原理,只是目录不同而已)

// 从SD card中加载资源,从沙盒中加载也是这个原理
		File resFile = new File("/mnt/sdcard/storage_image.png");
		sdBitmapTextureAlAtlas = new BitmapTextureAtlas(getTextureManager(), 128, 128);
		FileBitmapTextureAtlasSource fileBitmapTextureAtlasSource = FileBitmapTextureAtlasSource.create(resFile);
		sdTextureRegion = (TextureRegion) BitmapTextureAtlasTextureRegionFactory.createFromSource(sdBitmapTextureAlAtlas, fileBitmapTextureAtlasSource, 0, 0);
		sdBitmapTextureAlAtlas.load();
其实原理很简单,AndEngine已经为我们提供了一个叫做FileBitmapTextureAtlasSource的类了,而继承关系是FileBitmapTextureAtlasSource继承于BaseTextureAtlasSource并且实现IBitmapTextureAtlasSource接口,有心的同学可能发现了,在BitmapTextureAtlasTextureRegionFactory的各种create**()方法中,传入的source参数都是实现于IBitmapTextureAtlasSource接口的。


简单介绍一下,想深入的同学继续看AndEngine源码吧!

附上我那弱弱的Demo源码,点击下载



[libgdx游戏开发教程]使用Libgdx进行游戏开发(9)-场景过渡效果

本章主要讲解场景过渡效果的使用。这里将用到Render to Texture(RTT)技术。 Libgdx提供了一个类,实现了各种常见的插值算法,不仅适合过渡效果,也适合任意特定行为。 在本游戏里面,...

Android 气泡自由移动和漩涡

原理: 1.气泡自由移动,就是随机的在气泡的四个方向上(上下左右)移动一个距离。 2.漩涡向内收缩,其实就是使用圆的极坐标方程x = R*cos(theta) + centerX; y = R*s...

游戏引擎AndEngine总结(十):单帧图片组合成为动画资源

最近工作比较忙,要学的东东比较多,所以AndEngine就耽搁下了,一直还停在之前的理解上,虽说现在的游戏是基于AndEngine的,但是已经处在被动的学习状态下了(遇到问题的时候再去看看原理。。。)...

19.VC(ui)-加载图片资源的方法(随手代码)

BOOL CImageManager::LoadResImage(UINT nResID, LPCTSTR lpType, Bitmap *&lpImage, ...
  • hgy413
  • hgy413
  • 2011年12月14日 17:18
  • 917

Android 异步加载图片分析总结,多种方法加载图片资源

研究了android从网络上异步加载图像,现总结如下: (1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法。 在主...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:游戏引擎AndEngine总结(九):三种加载图片资源的方法
举报原因:
原因补充:

(最多只允许输入30个字)