2016-04-28 71 views
0

創建從一個文件對象的位圖,我得到一個包含文件的對象: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)

看來我需要從我的文件對象創建一個物理文件...... 任何想法如何我能解決這個問題嗎?

感謝您的回答。

+0

你要保存你的文件在哪裏?用該代碼更新。你有沒有在清單中添加適當的權限? –

+0

不要使用字節數組輸出流,而是直接使用'BitmapFactory.decodeFile(thumbnail);' – greenapps

+0

thumbnail.getAbsolutePath()的值是什麼? – greenapps

回答

0

最後,我會嘗試通過在我的對象中包含位圖而不是文件來找到另一種方式....它會更容易。無論如何感謝您的答案。

相關問題