我搜索了所有论坛,但我无法获得任何正常工作的代码。我想在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卡加载为精灵。
答案 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);