我对Android编码很陌生,所以请不要对我大喊大叫>。<
我正在关注在线指南,向我解释如何编写Android游戏代码。虽然我一直在加载图像,但我无法正确使用它。
我使用IntelliJ Idea作为我的IDE。默认情况下所有目录的排序方式如下图所示:
我在Paint上绘制了一个非常难看的混乱,并使用this guide将其添加到目录中。它对我的图像做了一些事情,并在每个目录中添加了一个menu.png文件。
在代码中,我正在尝试使用带有.open()方法的AssetManager使用字符串“menu.png”加载图像(使用getAssets()方法从主Activity获取AssetManager)。但是,我一直在获得IO异常,我不知道如何解决它。我在网上查看了几个指南,但我仍然无法理解这一点。请帮帮我!
P.S。我不是母语人士,对我的英语很抱歉。 谢谢大家,祝你有个愉快的一天!
答案 0 :(得分:1)
要加载图片,您需要使用Android意图,它会将您带到默认的图像加载器应用程序(由手机制造商提供)。
首先创建意图。这应该是当用户单击按钮或类似事件时。
// Creates an Intent to pick a photo
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
然后执行intent:
// ARGS: the intent, a key to access later
startActivityForResult(i, 1);
您现在必须设置onActivityResult(int requestCode, int resultCode, Intent data)
(详细说明here)。
以下是一些示例代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri selectedImage = data.getData();
try {
// Do whatever you want with this bitmap (image)
Bitmap bitmapImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
Log.i("Image Path", selectedImage.getPath());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
就是这样!使用创建的Bitmap执行任何操作。请记住,此方法直接进入您的班级。