保存位图并将其命名为输入字符串

时间:2016-03-06 03:35:39

标签: android filenames

我在保存图片时遇到了文件名称的问题。

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")而不是字符串。  如果有人可能有解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

您正在调用MediaStore.Images.Media.insertImage的错误版本。你正在调用的那个只需要一个Bitmap作为输入来保存。它对您创建的文件一无所知。它没有在javadoc中定义它将用于位图的文件的名称。

相反,您可能希望使用您创建的名称文件调用它:

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

此外,您应该在javadoc中注意MediaStore将为图像创建缩略图,并且为其创建的文件的名称可能是它想要的任何内容。