2013-07-26 3 views
2

J'ai recherché tous les forums mais je ne parviens pas à obtenir un code fonctionnant. Je veux charger une image comme sprite de la carte SD dans AndEngine GLES2.Can quelqu'un peut-il me fournir un code?
Toute aide sera appréciée. Voici ce que j'ai essayé.Chargement de l'image en tant que Sprite de la carte SD dans AndEngine GLES2

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); 

Ce code fonctionne pour andEngine1 mais GLES2, la ligne ci-dessous génère erreur de compilation de temps
"Construtor FileBitmapTextureAtlasSource (fichier) est indéfini"
FileBitmapTextureAtlasSource fileTextureSource = new FileBitmapTextureAtlasSource(imageFile);

Comment puis-je charger une image sprite de la carte SD.

Répondre

3

J'ai trouvé la solution du problème.
FileBitmapTextureAtlasSource est modifié dans AndEngine2.
Voici le code qui a fonctionné pour moi

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()); 
0

Essayez cette

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); 
+0

Gaurav, vous avez copié le même code ci-dessus d'un autre poste. Ce code fonctionne dans AndEngine1 mais pas pour GLES 2. Mais merci pour votre aide. –

+0

Oui, j'essayais juste de vous aider. Je pensais que c'était possible que vous n'ayez pas vu cet article ... – Developer

1

Juste copie directe de mon ancien projet (il est classe d'activité à l'intérieur), il charge l'image de la mémoire interne, vous pouvez le modifier à createFromExternalStorage(). IIRC, createFromExternalStorage() et createFromInternalStorage() ont les mêmes paramètres mais des emplacements différents. Le fichier image se trouve dans '/ data/data/your_package/files /' (si interne) ou '/ sdcard/Android/your_package/files /' (si externe).

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