将位图画布保存为手机内存中的png文件

时间:2016-02-02 12:28:10

标签: android memory canvas bitmap internal

我正在尝试将位图画布绘图保存到png文件到手机的内存,因为我使用的手机没有外部存储器。但我无法在图库或文件浏览器中看到。帮助我。 以下是我正在使用的代码。

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath().toString() + "/note.png");

Log.i(TAG,"PATH = " +file.getAbsolutePath());

try 
{

mBitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(file));

} 
catch (Exception e) 
{

e.printStackTrace();

}

2 个答案:

答案 0 :(得分:0)

添加照片后,您需要尝试此代码:

Intent mediaScanIntent = new Intent(
            Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    String currentPath = Environment.getExternalStorageDirectory()
            + "/MyAPP/APP" + n + ".jpg";
    File f = new File(currentPath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);

有时会发生什么情况是图像被添加但设备无法扫描其位置。

答案 1 :(得分:0)

您可以设置保存图像的路径   的 android.os.Environment.getExternalStorageDirectory() 绝对会起作用。

// for path  to phone's internal memory 
    File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "folder-name");
//for make the directory if not exist 
        if (!cacheDir.exists())
             cacheDir.mkdirs();
    f = new File(cacheDir, "myimage.jpg");
    URL url1 = new URL(your-url);