创建从一个文件对象的位图,我得到一个包含文件的对象:java.io.FileNotFoundException而在Android
public class Ordo implements java.io.Serializable{
static final long serialVersionUID = 11223344;
public String id;
public String name;
public String date;
public String status;
public File thumbnail;
,我需要这个文件转换成位图要在一个活动观看。 我做了以下内容:
thumbnail = list.getFileFromId(vid);
Bitmap pic = null;
try {
byte[] buffer = new byte[8192];
int bytesRead;
FileInputStream input = new FileInputStream(thumbnail);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
while((bytesRead = input.read(buffer)) != -1){
stream.write(buffer, 0, bytesRead);
}
pic = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
} catch (Exception e) {
e.printStackTrace();
}
,但我得到了以下错误:
04-28 18:16:16.759: W/System.err(31995): java.io.FileNotFoundException: 1461854326445.png: open failed: ENOENT (No such file or directory) 04-28 18:16:16.779: W/System.err(31995): at libcore.io.IoBridge.open(IoBridge.java:456) 04-28 18:16:16.779: W/System.err(31995): at java.io.FileInputStream.(FileInputStream.java:76) 04-28 18:16:16.779: W/System.err(31995): at com.jre.link.View.onCreate(ViewOrdo.java:83) 04-28 18:16:16.779: W/System.err(31995): at android.app.Activity.performCreate(Activity.java:6550) 04-28 18:16:16.779: W/System.err(31995): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120) 04-28 18:16:16.779: W/System.err(31995): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102) 04-28 18:16:16.779: W/System.err(31995): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248) 04-28 18:16:16.779: W/System.err(31995): at android.app.ActivityThread.access$1000(ActivityThread.java:197) 04-28 18:16:16.779: W/System.err(31995): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681) 04-28 18:16:16.779: W/System.err(31995): at android.os.Handler.dispatchMessage(Handler.java:102) 04-28 18:16:16.779: W/System.err(31995): at android.os.Looper.loop(Looper.java:145) 04-28 18:16:16.779: W/System.err(31995): at android.app.ActivityThread.main(ActivityThread.java:6872) 04-28 18:16:16.779: W/System.err(31995): at java.lang.reflect.Method.invoke(Native Method) 04-28 18:16:16.779: W/System.err(31995): at java.lang.reflect.Method.invoke(Method.java:372) 04-28 18:16:16.779: W/System.err(31995): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 04-28 18:16:16.779: W/System.err(31995): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
看来我需要从我的文件对象创建一个物理文件...... 任何想法如何我能解决这个问题吗?
感谢您的回答。
你要保存你的文件在哪里?用该代码更新。你有没有在清单中添加适当的权限? –
不要使用字节数组输出流,而是直接使用'BitmapFactory.decodeFile(thumbnail);' – greenapps
thumbnail.getAbsolutePath()的值是什么? – greenapps