안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 activity 변환에 문제가 생겨서 질문 드립니다.
case PICK_FROM_ALBUM : { Bitmap photo=null; mImageCaptureUri = data.getData(); try { photo = Images.Media.getBitmap(getContentResolver(), mImageCaptureUri); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(photo != null) try { mPhotoImageView.setImageBitmap(photo); FileOutputStream fos = new FileOutputStream(outFilePath); photo.compress(CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch(Exception e) {Log.e(TAG, "" + requestCode + " : " + e.toString());} else { Log.e(TAG, "Bitmap is null"); return; } Intent intent = new Intent(this, CropImageActivity.class); startActivityForResult(intent, CROP_FROM_CAMERA); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; }
sd카드에서 사진을 읽어와서 원하는 부분을 자르는 프로그램을 만들고 있습니다.
현재 activity에서 사진을 읽어오고 읽어온 사진을 다른 activity에서 crop한 후 다시 현재 activity에서 출력하는 프로그램을 짜는데요
위 코드에서
startActivityForResult(intent, CROP_FROM_CAMERA);
이부분을 실행하면 프로그램이 죽어버리네요.
안드로이드 폰에서 sd카드를 읽어와야 해서 연결한 상태로 프로그램 실행이 안되서 log가 나오지 않아서 해결하기가 더 힘드네요 '';
밑에 코드가 Intent를 만들때 사용하는 코드인데요
package image.crop;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager;
public class CropImageActivity extends Activity implements OnClickListener { CropImage ci; public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.cropactivity); ci = (CropImage)findViewById(R.id.cropview); findViewById(R.id.btn_ok).setOnClickListener(this); findViewById(R.id.btn_cancle).setOnClickListener(this); } public void onClick(View v) { Intent i = getIntent(); if(v.getId() == R.id.btn_ok) { ci.save(); setResult(RESULT_OK, i); } if(v.getId() == R.id.btn_cancle) { setResult(RESULT_CANCELED, i); } System.gc(); finish(); } }
여기서 코드자체에 문제가 있는가 싶어서
onCreate 부분에서
super.onCreate(icicle); 이 부분만 남기고 모두 지우고 실행해봐도 계속 프로그램이 죽어요
Intent를 만들 때 제가 잘못된 방법을 사용한 것일까요...?
해결방법 좀 부탁드립니다
메니페스트에 액티비티를 등록하지 않았을 수도 있을 것 같군요.
AndroidManifest.xml 파일을 확인해보세요