我有这个代码工作:
menu2TextureAtlas = new BitmapTextureAtlas(this.activity.getTextureManager(),256, 128);
menu2TextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(menu2TextureAtlas, this.activity, "menu2.png", 0, 0);
menu2TextureAtlas.load();
但我现在已经将图片menu2.png移动到res / drawable- *(其中*是hdpi,mdpi,xhdpi,xxhdpi)。所以现在我需要从那里加载图像。我该怎么做呢?
更新
答案下, 不确定它是否是最好的:
Resources resources = activity.getResources();
Drawable drawable = resources.getDrawable(R.drawable.menu1);
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
menu1TextureAtlas = new BitmapTextureAtlas(this.activity.getTextureManager(), width, height);
menu1TextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromResource(menu1TextureAtlas, this.activity, R.drawable.menu1, 0, 0);
menu1TextureAtlas.load();
答案 0 :(得分:1)
这是我用来从内部存储加载png而不是drawable的代码。希望这将符合您的需求。 事实上,在我自己的情况下,我首先将drawable保存到内部存储器,以便我可以覆盖存储中的文件。不确定这是否适合你的情况,但这是代码。如果您需要更多,只需添加评论即可。
public void loadImageFromInternalStorage(){
Log.d(TAG, "loadImageFromInternalStorage()");
try {
File imageFile = this.getFileStreamPath(userCreatedFileName);
FileInputStream fi = new FileInputStream(imageFile); // Throws an error if file not exits.
FileBitmapTextureAtlasSource fileTextureSource = FileBitmapTextureAtlasSource.create(imageFile);
this.grabTexture.clearTextureAtlasSources();
Log.d(TAG, "fileTextureSource" + fileTextureSource.toString());
BitmapTextureAtlasTextureRegionFactory.createFromSource(grabTexture, fileTextureSource, 0, 0);
Log.d(TAG, "createdFromResource");
} catch (FileNotFoundException ex) {
Log.e("File Not found in internal storage", ex.getMessage());
}
}
答案 1 :(得分:0)
答案是在原始帖子的末尾