如果我们的File
名称为f
,那么
BitmapFactory.decodeStream(new FileInputStream(f))
和
BitmapFactory.decodeFile(f.getAbsolutePath())
答案 0 :(得分:2)
没有
以下是来自the now-current source code的decodeFile()
方法的全部内容:
public static Bitmap decodeFile(String pathName, Options opts) {
Bitmap bm = null;
InputStream stream = null;
try {
stream = new FileInputStream(pathName);
bm = decodeStream(stream, null, opts);
} catch (Exception e) {
/* do nothing.
If the exception happened on open, bm will be null.
*/
Log.e("BitmapFactory", "Unable to decode stream: " + e);
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
// do nothing here
}
}
}
return bm;
}
与你或我所做的事情没有实质性的不同。
答案 1 :(得分:0)
decodeFile()
获取文件名并从那里解码图像。 decodeStream()
接受InputStream
,它可以是文件以外的任何内容。例如,您可以从网络连接或zip文件中获取数据,而无需先提取文件。
如果您只有一个文件,则更容易使用decodeFile()
。
答案 2 :(得分:0)
有区别。使用decodeFile()方法,您无法管理FileNotFound异常,而使用decodeStream()方法则可以。
因此,如果您确定要加载文件,则应使用decodeFile()。否则,您应该手动初始化FileStream并使用decodeStream()方法。