2016-03-06 74 views
0

我在保存圖像時遇到了文件名的問題。保存位圖並將其命名爲輸入的字符串

String fileName = currentDate + currentTime + personName; 

private void saveImage() 
{ 
    View u = mView; 
    ScrollView z = (ScrollView) findViewById(R.id.scroll_view); 
    int totalHeight = z.getChildAt(0).getHeight(); 
    int totalWidth = z.getChildAt(0).getWidth(); 

    Bitmap b = getBitmapFromView(u, totalHeight, totalWidth); 


    try { 
     FileOutputStream fos = new FileOutputStream(fileName); 
     b.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
     fos.flush(); 
     fos.close(); 
     MediaStore.Images.Media.insertImage(getContentResolver(), b, "Screen", "screen"); 
    }catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

當文件輸出,該文件的名稱設置爲一系列的數字(例如:「1457223074488」),而不是字符串。 如果有人可能有解決方案,請告訴我。

+0

什麼是currentDate和currentTime?這些時間可能以毫秒爲單位嗎? – Francesc

+0

currentDate是日期格式mm/dd/yy,currentTime是時間格式HHMM – hamdummy

回答

0

您打錯了MediaStore.Images.Media.insertImage的錯誤版本。你現在打電話的人只需要一個位圖作爲輸入來保存。它不知道你創建的文件。它沒有在javadoc中定義它將用於位圖的文件的名稱。

相反,你可能希望與您建立的名稱文件來調用它:

MediaStore.Images.Media.insertImage(getContentResolver(), fileName, "Screen", "screen"); 

此外,你應該在MediaStore將創建一個縮略圖圖像的Javadoc注意到,和的名字它創建的文件可能是任何想要的。

相關問題