camera picturecallback intent not work

Posted by Simon on Stack Overflow See other posts from Stack Overflow or by Simon
Published on 2014-06-10T07:45:09Z Indexed on 2014/06/10 9:25 UTC
Read the original article Hit count: 238

Filed under:
|

After I take the photo, the program automatically goes back like onBackPressed(). When I remove the putExtra, the intent runs. When I put startActivity() after takePicture(), it transfers null data....

I just want to put the image data to another activity to have other use. How can it be achieved?

private PictureCallback picture = new PictureCallback(){
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            // TODO Auto-generated method stub

            Intent intent = new Intent(CameraFilming.this, PhotoPreview.class);
            intent.putExtra("imageByte", data); //Picture data transfer to next activity
            startActivity(intent);
        }

    };
//take photo by pressing button
private class captureBtnListener implements View.OnClickListener{
        @Override
        public void onClick(View v){
            capture.setOnClickListener(null);           
            CountDownTimer timer = new CountDownTimer(10000, 1000){
                @Override
                public void onTick(long millisUntilFinished) {
                    // TODO Auto-generated method stub                  
                    countdown.setText(millisUntilFinished/1000+"");
                }

                @Override
                public void onFinish() {
                    // TODO Auto-generated method stub
                    countdown.setText("0");
                    camera.takePicture(null, null, picture);
                }               
            };
            timer.start();
        }
    }


public class PhotoPreview extends Activity{
    private RelativeLayout layout;
    private ImageView overlay, texture, face1, face2;

    @Override
    public void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photo_preview);
        layout = (RelativeLayout)findViewById(R.id.preview_layout);

        byte[] data = getIntent().getByteArrayExtra("imageByte");
        if (data == null){
            Log.d("PhotoPreview", "no image data");
            finish();
        }
        Bitmap rawPhotoBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

        ImageProcess imgProcess = new ImageProcess(this);
        Bitmap resizedFace = imgProcess.scaleAccordingWidth(imgProcess.cropImage(rawPhotoBitmap, 840, 125, 440, 560), 77);

        face1 = new ImageView(this);
        face1.setImageBitmap(resizedFace);

        Log.d("testing", "testing");
    }

}

© Stack Overflow or respective owner

Related posts about android

Related posts about camera