从assets文件夹中检索图像路径

时间:2012-05-15 09:01:46

标签: android path assets

我有从资产文件夹中检索图像路径的问题。

我在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 中替换了字符串,但它没有显示出来。

真的需要你们帮忙。谢谢。

5 个答案:

答案 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" ;

更新:同时检查languageSelectedIntro1ImagePath的值。