2011-07-25 83 views
0

我試圖將照片保存到SD卡和HTC設備上一切正常。我在SD卡上看到我的照片,打開時看到我的照片。但是,當我在星系選項卡上嘗試它時,照片被保存,但是當我打開這張照片時,我只看到黑色屏幕。任何可以告訴如何解決它?星系標籤:保存SD卡上的照片問題

我的代碼

tempBMP.compress(Bitmap.CompressFormat.JPEG, 85, stream); 
log("stream3"); 
File saveDir=null; 
String filename=""; 
byte[] byteArray = stream.toByteArray(); 
try 
     { 
      if (!saveDir.exists()) 
      { 
       saveDir.mkdirs(); 
      } 
      FileOutputStream os = new FileOutputStream(String.format("/sdcard/ "+""+filename, System.currentTimeMillis())); 


      os.write(byteArray); 
      os.close(); 

     } 
     catch (Exception e) 
     { 
     } 

的問候,彼得。

+0

已檢查但未找到錯誤。在其他設備上都可以。而當我使用此代碼通過電子郵件發送。一切都好吧... – Peter

回答

1

我真的不知道爲什麼,但是這個代碼對我的作品。也許你應該使用Enviroment.getExternalStorageDirectory()而不是使用「/ sdcard /」。嘗試一下。

File sdCard = Environment.getExternalStorageDirectory(); 
     File dir = new File (sdCard.getAbsolutePath()); 
     dir.mkdirs(); 

     File out = new File(dir,filename); 
     try { 
      out.createNewFile(); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     DataOutputStream fo = null; 

      try { 
       fo = new DataOutputStream(new FileOutputStream(out)); 
       //write what you want to fo 
       fo.close(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
+0

此代碼在galaxy選項卡上工作?或在哪裏?請回答我 – Peter

+0

是的。它適用於星系標籤,對我來說。 –

+0

謝謝,我會嘗試 – Peter

1

是的,這是Galaxy Tab本身的問題我認爲如果圖像不在默認圖像文件夾中,則無法查看圖像,如果您將SD卡安裝到PC上,則可以輕鬆查看這些圖像。

所以總體思路是,你的形象不被破壞它只是問題與Galaxy Tab的

+0

謝謝你的答案。這解釋了當我通過電子郵件發送圖像時,我可以看到比我的圖像。謝謝。 – Peter

0

我猜你的代碼拋出空指針異常,你正在處理在catch塊generacally並沒有做任何事情來處理它。看看它。可以使用Enviroment.getEternalStorageDirectory()獲取sdcard目錄的根目錄。

+0

我沒有錯誤。在SD卡上的圖像是黑色的(當我試圖觀看時黑色屏幕) – Peter