Take photo from camera in fragment

后端 未结 4 1636
终归单人心
终归单人心 2020-12-02 21:07

In my Fragment I try to take picture from my camera but the onActivityResult of my Fragment is not called. After taking photo this

4条回答
  •  攒了一身酷
    2020-12-02 21:48

    Hope this will help you:

    public class CameraImage extends Fragment {
    
        private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1888;
        Button button;
        ImageView imageView;
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
    
            final View rootView = inflater.inflate(R.layout.camera_image,
                    container, false);
    
            button = (Button) rootView.findViewById(R.id.button);
            imageView = (ImageView) rootView.findViewById(R.id.imageview);
    
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent,
                            CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
    
                }
            });
    
            return rootView;
    
        }
    
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
                if (resultCode == Activity.RESULT_OK) {
    
                    Bitmap bmp = (Bitmap) data.getExtras().get("data");
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    
                    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    byte[] byteArray = stream.toByteArray();
    
                    // convert byte array to Bitmap
    
                    Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0,
                            byteArray.length);
    
                    imageView.setImageBitmap(bitmap);
    
                }
            }        
        }    
    }
    

提交回复
热议问题