android mediastore.images.media.insertimage,android – MediaStore.Images.Media.insertImage在尝试保存图像时返回n...

在Android应用中,用户可以使用自定义视图在画布上绘制并试图保存图像到SD卡,但遇到问题导致保存失败。错误日志显示‘No such file or directory’,提示文件未找到。问题可能出在文件输出流或MediaStore的insertImage方法上,导致图像无法成功保存到设备相册。
摘要由CSDN通过智能技术生成

我正在使用自定义视图,因为我正在使用画布,用户可以在其中绘制任何东西,之后我想要保存该图像在sd卡bt无法做到这一点。不知道发生了什么。

else if(view.getId()==R.id.save_btn){

//save drawing

AlertDialog.Builder saveDialog = new AlertDialog.Builder(this);

saveDialog.setTitle("Save drawing");

saveDialog.setMessage("Save drawing to device Gallery?");

saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener(){

private FileOutputStream fOut;

public void onClick(DialogInterface dialog, int which){

//save drawing

drawView.setDrawingCacheEnabled(true);

//attempt to save

String imgSaved = MediaStore.Images.Media.insertImage(

getContentResolver(), drawView.getDrawingCache(),

UUID.randomUUID().toString()+".png", "drawing");

//feedback

if(imgSaved!=null){

Toast savedToast = Toast.makeText(getApplicationContext(),

"Drawing saved to Gallery!", Toast.LENGTH_SHORT);

savedToast.show();

}

else{

Toast unsavedToast = Toast.makeText(getApplicationContext(),

"Oops! Image could not be saved.", Toast.LENGTH_SHORT);

unsavedToast.show();

}

drawView.destroyDrawingCache();

}

});

saveDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int which){

dialog.cancel();

}

});

saveDialog.show();

}

这里是错误的细节

04-14 11:24:28.700: E/MediaStore(6866): Failed to insert image

04-14 11:24:28.700: E/MediaStore(6866): java.io.FileNotFoundException: No such file or directory

04-14 11:24:28.700: E/MediaStore(6866): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)

04-14 11:24:28.700: E/MediaStore(6866): at android.content.ContentProviderProxy.openAssetFile(ContentProviderNative.java:577)

04-14 11:24:28.700: E/MediaStore(6866): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:673)

04-14 11:24:28.700: E/MediaStore(6866): at android.content.ContentResolver.openOutputStream(ContentResolver.java:537)

04-14 11:24:28.700: E/MediaStore(6866): at android.content.ContentResolver.openOutputStream(ContentResolver.java:513)

04-14 11:24:28.700: E/MediaStore(6866): at android.provider.MediaStore$Images$Media.insertImage(MediaStore.java:891)

04-14 11:24:28.700: E/MediaStore(6866): at com.example.clent.MainActivity$9.onClick(MainActivity.java:238)

04-14 11:24:28.700: E/MediaStore(6866): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)

04-14 11:24:28.700: E/MediaStore(6866): at android.os.Handler.dispatchMessage(Handler.java:99)

04-14 11:24:28.700: E/MediaStore(6866): at android.os.Looper.loop(Looper.java:137)

04-14 11:24:28.700: E/MediaStore(6866): at android.app.ActivityThread.main(ActivityThread.java:5103)

04-14 11:24:28.700: E/MediaStore(6866): at java.lang.reflect.Method.invokeNative(Native Method)

04-14 11:24:28.700: E/MediaStore(6866): at java.lang.reflect.Method.invoke(Method.java:525)

04-14 11:24:28.700: E/MediaStore(6866): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)

04-14 11:24:28.700: E/MediaStore(6866): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)

04-14 11:24:28.700: E/MediaStore(6866): at dalvik.system.NativeStart.main(Native Method)

我总是在尝试保存图像时收到此消息….“糟糕!图像无法保存。”…..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值