我试图使用我制作的应用程序拍摄启动相机,不知何故,在图像处理过程中,图像变得非常模糊。
无论如何我能得到清晰的图像吗?
[Activity(Label = "LaunchCamera")]
public class LaunchCamera : Activity
{
ImageView imageView;
private const int requestCode = 20;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Camera);
// Create your application here
var mBtnCamera = FindViewById<Button>(Resource.Id.btnCamera);
imageView = FindViewById<ImageView>(Resource.Id.photoView);
mBtnCamera.Click += MBtnCamera_ClickAsync;
}
private void MBtnCamera_ClickAsync(object sender, EventArgs e)
{
Intent cameraFire = new Intent(MediaStore.ActionImageCapture);
StartActivityForResult(cameraFire,requestCode)
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
Bitmap bitmap = (Bitmap)data.Extras.Get("data");
imageView.SetImageBitmap(bitmap);
}
}
帮助它。
赞赏提示回复。
答案 0 :(得分:2)
在Android中从相机中获取图像非常简单,但如果您需要从相机获取完整质量的图像,则会非常棘手。当您使用动作图像捕获启动意图时,您基本上得到的只是缩略图。要获得高质量的全尺寸照片,您需要将高质量的照片保存在手机存储或外部存储中,然后使用Uri获取该照片。如果不保存照片,则无法从相机中获取高质量的照片。 而不是使用默认目录来存储图片创建自己的目录来存储图像。
private void CreateDirectoryForPictures ()
{
App._dir = new File (
Environment.GetExternalStoragePublicDirectory (
Environment.DirectoryPictures), "CameraAppDemo");
if (!App._dir.Exists ())
{
App._dir.Mkdirs( );
}
}
将Uri传递给相机意图
private void TakeAPicture (object sender, EventArgs eventArgs)
{
Intent intent = new Intent (MediaStore.ActionImageCapture);
App._file = new File (App._dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
intent.PutExtra (MediaStore.ExtraOutput, Uri.FromFile (App._file));
StartActivityForResult (intent, 0);
}