簡體   English   中英

如何使用片段中的相機在Xamarin Android中捕獲圖像

[英]How to capture an image in xamarin android using the camera in fragment

我是xamarin android的初學者。我想使用設備相機拍照,我正在使用以下代碼來捕獲圖像,但是,運行代碼時出現異常

這是我的Fragment.CS

  public class ScanFragments : Fragment
{
    ImageView imageView;

    public override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
    }

    public static ScanFragments NewInstance()
    {
        var scan = new ScanFragments { Arguments = new Bundle() };
        return scan;
    }


    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var ignored = base.OnCreateView(inflater, container, savedInstanceState);

        imageView =View.FindViewById<ImageView>(Resource.Id.Iv_ScanImg);
        var btnCamera =View. FindViewById<Button>(Resource.Id.btnCamera);

        btnCamera.Click += BtnCamera_Click;


        return inflater.Inflate(Resource.Layout.ScanLayout, null);
    }

    private void BtnCamera_Click(object sender, EventArgs e)
    {
        Intent intent = new Intent(MediaStore.ActionImageCapture);
        StartActivityForResult(intent, 0);
    }
}

好吧,現在我看到您的錯誤實際上非常簡單,由於以下原因,您獲得了空引用

1.OnCreateView基本上不包含View的定義,我的意思是View是一個用作該類對象的類。

2.我建議使用片段的實際方法是,首先在OnCreateView上將其定義為XML或AXML作為其前景視圖,如下所示:

 return inflater.Inflate(Resource.Layout.ScanLayout, null);

3.重寫OnViewCreated方法並使用其View來完成所有工作,如下所示:

 public override void OnViewCreated(View view, Bundle savedInstanceState)
{
    base.OnViewCreated(view, savedInstanceState);
    imageView =view.FindViewById<ImageView>(Resource.Id.Iv_ScanImg);
    var btnCamera =view. FindViewById<Button>(Resource.Id.btnCamera);

    btnCamera.Click += BtnCamera_Click;

}

4,有關Android活動和片段生命周期的詳細信息,請點擊此處

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM