У меня есть несколько ImageViews
внутри Activity
.
На onCreate()
они пусты, поэтому пользователь может разместить свои фотографии внутри него. Когда пользователь нажимает на ImageView
, он может выбирать между выбором картинок из своей галереи (что я смог реализовать) и получением живого снимка.
Я становлюсь действительно отчаянным. Я пытался реализовать new Intent(MediaStore.ACTION_IMAGE_CAPTURE)
, но качество изображения было ужасным.
Теперь я создал пользовательский CameraActivity
с SurfaceView
, но ActivityResult
Bundle b
всегда равен нулю!
private void CameraOpen() {
Intent intent = new Intent(ActivityA.this, CameraActivity.class);
startActivityForResult(intent, CAMERA_INTENT_REQUEST_CODE);
return;
}
и внутри CameraActivity
jpegCallback = new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] data, Camera camera) {
mCapture.setVisibility(View.GONE);
Bitmap b = BitmapFactory.decodeByteArray(data, 0, data.length);
b = rotate(b);
IMAGE = data;
mShowCapture.setImageBitmap(b);
mShowCapture.setVisibility(View.VISIBLE);
mFab.show();
/* Intent intent = new Intent(CameraActivity.this, ShowCaptureActivity.class);
// intent.putExtra("capture", data);
Globals.img = BitmapFactory.decodeByteArray(data, 0, data.length);
startActivity(intent);
finish();
return;
*/
}
};
, то:
mFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(IMAGE != null) {
Intent intent = new Intent(CameraActivity.this, CreateEventActivity.class);
intent.putExtra("photo", IMAGE);
setResult(RESULT_OK, intent);
finish();
}
}
});
внутри ActivityA в onActivityResult:
else if(requestCode == CAMERA_INTENT_REQUEST_CODE){
if(data != null) {
Bundle b = getIntent().getExtras();
if(b != null) {
byte[] photo = b.getByteArray("photo");
Bitmap bitmap = BitmapFactory.decodeByteArray(photo, 0, photo.length);
placeImage(bitmap);
} else{
Toast.makeText(this, "b = null", Toast.LENGTH_SHORT).show();
}
} else{
Toast.makeText(this, "data = null", Toast.LENGTH_SHORT).show();
}
но b
всегда равно нулю