2017-04-11 19 views
0

次のコードはカメラを開きますが、完全な画面をカバーし、イメージをキャプチャした後、フラグメントに戻ります。 (画像はギャラリーに安全に保存されていますので、私はカメラの部分だけを開きたいと思います)hereからコードをコピーしました。 。そして私のコードで先頭にURI変数を宣言した。
私もthisのような他の回答を試してみましたが、私はAPIコードに続いて19フラグメント内でカメラを開く方法

//my declared variables 
 
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1888; 
 
    Button button; 
 
    ImageView imageView; 
 
    Uri imageUri; 
 

 

 
@Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState) { 
 
     Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
 
     File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg"); 
 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, 
 
       Uri.fromFile(photo)); 
 
     imageUri = Uri.fromFile(photo); 
 
     getActivity().startActivityForResult(intent, 100); 
 

 

 
     // Inflate the layout for this fragment 
 
     return inflater.inflate(R.layout.fragment_scan, container, false); 
 
    } 
 

 

 
@Override 
 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
     super.onActivityResult(requestCode, resultCode, data); 
 
     switch (requestCode) { 
 
      case 100: 
 
       if (resultCode == Activity.RESULT_OK) { 
 
        Uri selectedImage = imageUri; 
 
        getActivity().getContentResolver().notifyChange(selectedImage, null); 
 
        ContentResolver cr = getActivity().getContentResolver(); 
 
        Bitmap bitmap; 
 
        try { 
 
         bitmap = android.provider.MediaStore.Images.Media 
 
           .getBitmap(cr, selectedImage); 
 

 
         imageView.setImageBitmap(bitmap); 
 
         Toast.makeText(getActivity(), selectedImage.toString(), 
 
           Toast.LENGTH_LONG).show(); 
 
        } catch (Exception e) { 
 
         Toast.makeText(getActivity(), "Failed to load", Toast.LENGTH_SHORT) 
 
           .show(); 
 
         Log.e("Camera", e.toString()); 
 
        } 
 
       } 
 
     } 
 
    }

答えて

1

に開発していて、彼らは複雑ですカメラを開くが、完全な画面をカバーする

確か。サードパーティのカメラアプリを起動していて、通常はフォアグラウンドを引き継ぎます。

私はFRAGMENT部分にのみカメラを開きたいと思います。

android.hardware.Cameraおよび/またはandroid.hardware.camera2.*のクラスセットを使用して、カメラのコードをゼロから作成します。サードパーティのカメラアプリをフラグメントに入れることはできません。

関連する問題