为什么图像视图中的图像模糊?

时间:2018-01-31 07:14:38

标签: c# android xamarin.android

我试图使用我制作的应用程序拍摄启动相机,不知何故,在图像处理过程中,图像变得非常模糊。

无论如何我能得到清晰的图像吗?

    [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); 



    }
}

帮助它。

赞赏提示回复。

1 个答案:

答案 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);
}