2016-03-06 41 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注意到,和的名字它创建的文件可能是任何想要的。

相关问题