MainActivity에서 카메라 활동을 시작하고 다른 활동으로 이미지를 반환하는 버튼을 구현하는 가장 좋은 방법을 찾으려고합니다. 기본적으로 이미지를 활동에 반환하여 설명을 이미지에 추가합니다. 좋은 생각이 될 것이라고 생각한 것은 카메라 버튼을 누르고 새 활동에서 카메라 활동을 시작하면 단일 사진보기 활동을 시작하는 것입니다. 다른 일을하기 전에 결과; 하지만 가끔씩 카메라가 반복적으로 멈추는 간헐적 인 문제가 있습니다.간헐적 인 문제로 인해 onCreate에서 카메라 시작
아마도 더 좋은 방법이 있을까요? 먼저 결과에 대한 카메라 활동을 시작한 다음 이미지를 의도로 전달해야합니까? 여기
내가 지금 무엇을 가지고 :@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}else if (id == R.id.menu_rules){
Intent rulesIntent = new Intent(this, RulesActivity.class);
startActivity(rulesIntent);
return true;
}else if (id == R.id.menu_import_photo){
//pull in an image from the gallery
return true;
}else if (id == R.id.menu_item_new_photo){
startActivity(new Intent(MainActivity.this, SinglePhotoViewActivity.class));
}
return super.onOptionsItemSelected(item);
}
과 수신 활동 ..
public class SinglePhotoViewActivity extends Activity {
private static final String LOG_TAG = "Simple Camera App";
private static int TAKE_PICTURE = 1001;
private ImageView imageView;
private Uri imageUri;
private Bitmap bitmap;
private TextView textView;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_photo_view);
if (bitmap == null)
takePhoto();
}
public void takePhoto(){
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment
.getExternalStoragePublicDirectory(Environment
//this will continually overwrite the same file
//need to implement a date/ time string
//to save as file name.
.DIRECTORY_PICTURES), "pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
startActivityForResult(intent, TAKE_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case 1001:
if(resultCode == Activity.RESULT_OK) {
getContentResolver().notifyChange(imageUri, null);
imageView = (ImageView)findViewById(R.id.ivCameraImageView);
ContentResolver contentResolver = getContentResolver();
try {
bitmap = android.provider.MediaStore.Images.Media.getBitmap(contentResolver,
imageUri);
imageView.setImageBitmap(bitmap);
} catch(Exception e) {
Toast.makeText(SinglePhotoViewActivity.this, "failed to load",
Toast.LENGTH_LONG).show();
Log.e(LOG_TAG, e.toString());
}
}
}
}
}