首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在android中打开资源文件夹中的文件

在android中打开资源文件夹中的文件
EN

Stack Overflow用户
提问于 2009-12-19 22:18:44
回答 6查看 60.7K关注 0票数 15

我在assets文件夹中有一个.gif文件,类似于assets/Files/android.gif。当我试图打开文件时,它在第二行抛出一个异常

代码语言:javascript
复制
AssetManager mngr=getAssets();
InputStream is2=mngr.open("Files/android.gif");

那么,我是不是试图打开一个图像文件,尽管如果我试图打开一个文本文件,同样的代码也可以工作?这里会有什么问题呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-14 17:36:41

这些线路工作得很好--

代码语言:javascript
复制
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

票数 31
EN

Stack Overflow用户

发布于 2009-12-20 02:38:48

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

代码语言:javascript
复制
AssetManager mngr = getAssets();
try {
    InputStream is2 = mngr.open("Files/android.gif");
} catch (final IOException e) {
    e.printStackTrace();
}
票数 4
EN

Stack Overflow用户

发布于 2009-12-19 22:29:48

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

代码语言:javascript
复制
BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1933015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档