在AndEngine GLES2中将图像作为Sprite从SD卡加载

时间:2013-07-26 07:43:08

标签: android andengine sprite

我搜索了所有论坛,但我无法获得任何正常工作的代码。我想在AndEngine GLES2中从SD卡加载一个图像作为精灵。任何人都可以给我一个代码吗?
任何帮助将不胜感激。这是我尝试过的。

File imageFile = new File(pFilePath);
BitmapTextureAtlas texture = new BitmapTextureAtlas(myCxt.getTextureManager(),540 , 960 , TextureOptions.DEFAULT);
FileBitmapTextureAtlasSource fileTextureSource = new FileBitmapTextureAtlasSource(imageFile);
TextureRegion textureRegion = TextureRegionFactory.createFromSource(texture,fileTextureSource ,0,0, true);

此代码适用于andEngine1,但在GLES2中,下面给出的行生成编译时错误
 “Construtor FileBitmapTextureAtlasSource(file)未定义”
FileBitmapTextureAtlasSource fileTextureSource = new FileBitmapTextureAtlasSource(imageFile);

如何将图像从SD卡加载为精灵。

3 个答案:

答案 0 :(得分:3)

我找到了解决问题的方法 在AndEngine2中更改了FileBitmapTextureAtlasSource 这是适合我的代码

File imageFile = new File(pFilePath);
BitmapTextureAtlas texture = new BitmapTextureAtlas(getTextureManager(),displayMetrics.widthPixels , displayMetrics.heightPixels , TextureOptions.BILINEAR_PREMULTIPLYALPHA);
FileBitmapTextureAtlasSource fileTextureSource = FileBitmapTextureAtlasSource.create(imageFile);
Engine.getTextureManager().loadTexture(texture);
TextureRegion textureRegion = TextureRegionFactory.createFromSource(texture,fileTextureSource ,0,0, false);
screenShot = new Sprite(130, 230, textureRegion, myCxt.getVertexBufferObjectManager());

答案 1 :(得分:1)

只需从我的旧项目直接复制(它在内部活动类中),它从内部存储加载图像,您可以将其更改为createFromExternalStorage()。 IIRC,createFromExternalStorage()createFromInternalStorage()具有相同的参数,但位置不同。图像文件位于'/ data / data / your_package / files /'(如果是内部)或'/ sdcard / Android / your_package / files /'(如果是外部的)。

BitmapTextureAtlas texture = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1024);
mBeanRegion = BitmapTextureAtlasTextureRegionFactory.createFromSource(texture, FileBitmapTextureAtlasSource.createFromInternalStorage(this, "bean.png", 0, 0), 0, 0);
texture.load();

答案 2 :(得分:0)

试试这个

File imageFile = new File("sdcard/image");
BitmapTextureAtlas texture = new BitmapTextureAtlas(width , height , TextureOptions.DEFAULT);
FileBitmapTextureAtlasSource fileTextureSource = new FileBitmapTextureAtlasSource(imageFile);
TextureRegion textureRegion = TextureRegionFactory.createFromSource(texture,fileTextureSource ,0,0, true);