我正在开发一个android应用程序,我试图在资产文件夹中打开一个xml文件,该文件夹包含对位于资产文件夹中的图像的引用。我在一个非活动类中使用AssetManager,并试图将上下文传递给它的构造函数,但没有成功。Eclipse中没有错误,但是当我运行该应用程序时,它会被压缩。下面是我用于2个类和XML的代码。将上下文传递给非活动类以使用AssetManager.getAssets()
XML文件:
<scene>
<sprite>
<img src="100789.jpg" positionx="100" positiony="200" name="100789.jpg"/>
</sprite>
<sprite>
<img src="100788.jpg" positionx="2" positiony="20" name="100788" />
</sprite>
</scene>
主类(活动)
import android.content.Context;
....
public class Test extends AndroidGame {
Context context=getApplicationContext();
@Override
public Screen getStartScreen() {
return new LoadingScreen(this, context);
}
}
装入类(屏幕)
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import android.content.Context;
import android.content.res.AssetManager;
....
public class LoadingScreen extends Screen {
private Context context;
public Document doc;
public LoadingScreen(Game game, Context context) {
super(game);
this.context=context;
}
AssetManager gi = con.getAssets();
@Override
public void update(float deltaTime) {
try {
InputStream inStream = gi.open("assets.xml");
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(inStream);
doc.getDocumentElement().normalize();
}catch (Exception e) {
e.printStackTrace();
}
Graphics g = game.getGraphics();
Assets.background = g.newPixmap(doc.getDocumentElement().getElementsByTagName("sprite").item(0).getChildNodes().item(1).getAttributes().getNamedItem("name").getNodeValue(), PixmapFormat.RGB565);
....
....
game.setScreen(new MainMenuScreen(game));
}
所以我做错了什么?
我也试图把下面的代码在构造,但没有成功:
public LoadingScreen(Game game, Context context) {
super(game);
this.context=context;
AssetManager gi = con.getAssets();
try {
InputStream inStream = gi.open("assets.xml");
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(inStream);
doc.getDocumentElement().normalize();
}catch (Exception e) {
e.printStackTrace();
}
}
请张贴堆栈跟踪 –