我有从资产文件夹中检索图像路径的问题。
我在assets文件夹中有一个图像文件夹。在文件夹中我有三个不同的文件夹。
以下是我使用的代码:
String IntroImage1= "" + languageSelected + "/" + Intro1ImagePath + ".png" ;
try{
AssetManager mngr =getAssets();
InputStream BulletImgInput = mngr.open(IntroImage1);
//InputStream BulletImgInput = mngr.open("image/Malay/bullet.png");
Bitmap bitmapBullet = BitmapFactory.decodeStream(BulletImgInput);
BulletImage.setImageBitmap(bitmapBullet);
}catch(final IOException e){
e.printStackTrace();
}
我想知道为什么我不能显示图像?因为我试图通过这段代码检索它:
InputStream BulletImgInput = mngr.open("image/Malay/bullet.png");
它确实检索了文件,但是我在 mngr.open 中替换了字符串,但它没有显示出来。
真的需要你们帮忙。谢谢。
答案 0 :(得分:8)
您不需要AssetManager。你可以做到
BitmapFactory.decodeFile("file:///android_asset/image/Malay/bullet.jpg")
虽然在资产中存储图像并不是最好的方法。您将无法利用Android资源管理系统。因此,除非您有令人信服的理由这样做,否则我建议您查看使用res
文件夹和资源系统。
更新:解释
BitmapFactory
有一种通过decodeFile
方法解码文件的方法。这是第一点。 Android允许您通过assets
路径访问file:///android_asset/{path}
文件夹中的文件。在您的情况下,/ image / Malila / bullet.jpg中的图像是assets
文件夹,可以通过file:///android_asset/image/Malay/bullet.jpg
访问。
答案 1 :(得分:3)
试试这个:
try {
// get input stream
InputStream ims = getAssets().open("avatar.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
mImage.setImageDrawable(d);
}
catch(IOException ex) {
Log.e("I/O ERROR","Failed when ..."
}
你的BulletImage
答案 2 :(得分:2)
String url = "file:///android_asset/NewFile.txt";
String url = "file:///android_asset/logo.png";
您可以访问任何文件....
答案 3 :(得分:1)
InputStream BulletImgInput = mngr.open("file:///android_asset/image/Malay/bullet.png");
也许这对你有用。
答案 4 :(得分:0)
问题可能是错过image
部分的路径?
String IntroImage1= "image/" + languageSelected + "/" + Intro1ImagePath + ".png" ;
而不是
String IntroImage1= "" + languageSelected + "/" + Intro1ImagePath + ".png" ;
更新:同时检查languageSelected
和Intro1ImagePath
的值。