2014-03-28 72 views
0

我是一名新手Android開發人員。我已經使用通用圖像加載器加載了一個圖像,我想將它保存在我的SD卡上。該文件是在所需的目錄中創建的,文件名正確,但文件大小始終爲0.我做錯了什麼?使用Android通用圖像加載器將圖像保存爲當前視圖到SD卡

一個相關的片段如下:

PS:圖像已經存在於磁盤,它沒有被從互聯網上下載。

private void saveImage(String imageUrls2, String de) { 
     String filepath = Environment.getExternalStorageDirectory() 
       .getAbsolutePath(); 
     File SDCardRoot = Environment.getExternalStorageDirectory() 
       .getAbsoluteFile();  
     String filename = de; 
     File myDir = new File(SDCardRoot+"/testdir"); 
     Bitmap mSaveBit = imageLoader.getMemoryCache(); 
     File imageFile = null; 

     try {   
      //create our directory if it does'nt exist 
      if (!myDir.exists()) 
       myDir.mkdirs(); 

      File file = new File(myDir, filename); 
      if (file.exists()) 
       file.delete(); 

      FileOutputStream fileOutputStream = new FileOutputStream(file); 
      BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream); 

      bos.flush(); 
      bos.close(); 

     } catch (IOException e) { 
      filepath = null; 
      e.printStackTrace(); 
      Toast.makeText(getApplicationContext(), 
        R.string.diskful_error_message, Toast.LENGTH_LONG) 
        .show(); 
     } 
     Log.i("filepath:", " " + filepath); 
    } 
+0

[從android通用圖像加載器下載圖像流]的可能重複(http://stackoverflow.com/questions/13855166/download-image-stream-from-android-universal-image-loader) – Emmanuel

回答

1

是的,你的代碼只在sdcard_root/testdir/de上創建一個文件,並且沒有寫任何東西。 「imageUrls2」是源圖像文件嗎?如果是,您可以使用BufferedInputStream打開該文件,從BufferedInputStream中讀取數據,並在bos.flush()和bos.close()之前使用bos.write()將其複製到輸出文件。

希望它有幫助。