【问题标题】:Opening a File from assets folder in android从android中的资产文件夹打开文件
【发布时间】:2010-12-28 07:53:04
【问题描述】:

我在 assets/Files/android.gif 之类的 assets 文件夹中有一个 .gif 文件。当我尝试打开文件时,它会在第二行引发异常

AssetManager mngr=getAssets();
InputStream is2=mngr.open("Files/android.gif");

所以是不是我试图打开一个图像文件,尽管如果我尝试打开一个文本文件,相同的代码可以工作? 这可能是什么问题。

【问题讨论】:

    标签: android android-assets


    【解决方案1】:

    这些线路运行良好--

    InputStream assetInStream=null;
    
    try {
        assetInStream=getAssets().open("icon.png");
        Bitmap bit=BitmapFactory.decodeStream(assetInStream);
        img.setImageBitmap(bit);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if(assetInStream!=null)
        assetInStream.close();
    }
    

    如果您的图像非常大,那么您应该先缩放图像,然后再将其解码为位图。 See How to display large image efficiently

    【讨论】:

    • AFIK 流使用后应关闭
    【解决方案2】:

    我怀疑您收到有关未处理异常类型 IOException 的投诉。如果是这种情况,您需要将对 mgr.open 的调用放在 try-catch 块中,以处理检索 InputStream 对象时可能发生的异常。

    AssetManager mngr = getAssets();
    try {
        InputStream is2 = mngr.open("Files/android.gif");
    } catch (final IOException e) {
        e.printStackTrace();
    }
    

    【讨论】:

      【解决方案3】:

      不知道事情是否发生了变化,但我在 Android 1.1 中有一个应用程序,它打开图标然后在视图中显示它们,我是这样做的:

      BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value));
      Bitmap bitmap = BitmapFactory.decodeStream(buf);
      

      【讨论】:

        【解决方案4】:

        我认为最好的方法是将图像放在 res/drawable 目录中。然后你可以像这样得到一个 Drawable:

        Drawable d = Resources.getSystem().getDrawable(R.drawable.android);
        

        【讨论】:

          【解决方案5】:

          Mina,我遇到了同样的问题...我在“资产”中有图像和 XML 文件,我可以读取 XML 文件但不能读取图像。经过几个小时的挫折,我终于找到了解决方案!

          我在这里发布了解决方案: Null-pointer issue displaying an image from assets folder Android 2.2 SDK

          【讨论】:

            【解决方案6】:

            我不相信 Android 会自动支持 gif。尝试使用相同代码的 png 或 jpg。

            【讨论】:

              猜你喜欢
              • 2013-12-06
              • 2018-12-31
              • 1970-01-01
              • 2018-12-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-08-25
              相关资源
              最近更新 更多