android,将视图保存为png文件

acl*_*l77 5 android bitmap

我期待下面的代码将图像保存到我的本地SD卡但是当我运行应用程序并触发saveCanvasImage()方法时,它没有这样做.当我查看LogCat时,我可以找到一个System.err条目.文字说:

java.io.FileNotFoundException:/mnt/sdcard/drawPic1.png:打开失败:EACCES(权限被拒绝)

我以为这会创建一个新的png文件并将其保存在目录中.我显然错了.我可以在这里改变什么来使它工作?

public void saveCanvasImage() {

    Log.d("bitmap","strm");
    tv.setDrawingCacheEnabled(true);
    Bitmap bm = tv.getDrawingCache();

    File fPath = Environment.getExternalStorageDirectory();
    File f = null;
    f = new File(fPath, "drawPic1.png");

    try {
    FileOutputStream strm = new FileOutputStream(f);
    bm.compress(CompressFormat.PNG, 80, strm);
    strm.close();
    }
    catch (IOException e){
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

Har*_*shi 7

你有权限吗?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)