使用Xamarin.Android拍照,想把拍照的图片保存到程序目录下,代码如下
private void TakeAPicture(object sender, EventArgs eventArgs)
{
var intent = new Intent(MediaStore.ActionImageCapture);
File finalFile = new File(
this.GetExternalFilesDir(Android.OS.Environment.DirectoryPictures), "1.jpg");
if (!finalFile.ParentFile.Exists())
{
finalFile.ParentFile.Exists();
}
if (Build.VERSION.SdkInt >= BuildVersionCodes.N)
{
photoURI = FileProvider.GetUriForFile(
this,
"com.mydomain.fileprovider",
finalFile);
intent.PutExtra(MediaStore.ExtraOutput, photoURI);
}
else
{
intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(finalFile));
}
StartActivityForResult(intent, Display_RequestCode);
}
摄像头启动成功,可拍照,在OnActivityResult中获取了resultCode为Result.OK,但是在指定位置文件夹创建了但没有生成文件(路径是fileprovider生成的content://)。
但是修改代码,不指定图片位置
private void TakeAPicture(object sender, EventArgs eventArgs)
{
var intent = new Intent(MediaStore.ActionImageCapture);
StartActivityForResult(intent, Display_RequestCode);
}
然后在OnActivityResult中,通过
Bitmap bm = (Bitmap)data.Extras.Get("data");
System.IO.FileStream fos = new System.IO.FileStream( string.Format("{0}/{1}.{2}",this.GetExternalFilesDir(Android.OS.Environment.DirectoryPictures),"1","jpg"), System.IO.FileMode.CreateNew);
来另存图片,反而是成功了,请各位指定迷津啊。
测试机用的华为P10,android版本为8.1。
窝巢!大神!请收下我的膝盖!!!求加QQ:348095,有事像你求教。
关于Xamarin的相机,我整整搜索了一周,下载工程近数十个,抄写文章代码数十篇,均无法正常使用,要么打不开相机,要么拍照后无法返回,要么返回后不知道怎么获取图像。
复制了你这篇代码,我终于成功拿到了相机返回的缩略图!还想像你请教一下,怎么获取原图。