public abstract class Write_MyArticle extends AppCompatActivity{
public Button btn_plus, btn_post, btn_delete;
public EditText edit_title, edit_contents;
public Uri imageUri;
public String absolutePath =null;
public ImageView image;
public RelativeLayout layout;
public Context mContext;
public Activity activity;
public Bitmap imageBitmap;
public final int PICK_FROM_CAMERA = 900;
public void onDestroy(){
super.onDestroy();
Log.d("message", " passing onDestroy");
if(imageBitmap != null && imageUri != null){
Log.d("message", "delete picture in gallery ");
getContentResolver().delete(imageUri, null,null);
}
imageBitmap = null;
imageUri = null;
}
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
mContext = this;
activity = this;
// call_camera();
}
public void call_camera(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, PICK_FROM_CAMERA);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Log.d("message", "took picture ");
if(resultCode != RESULT_OK)
return;
if(requestCode == PICK_FROM_CAMERA){
//선택한 사진의 uri
imageUri = data.getData();
Log.d("message", "URI : "+imageUri);
// 선택한 사진의 절대경로 구하는 것
Cursor c = this.getContentResolver().query(imageUri, null, null, null, null);
c.moveToNext();
absolutePath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
Log.d("message", "absolute path of the picture : "+absolutePath);
imageBitmap = CameraUtil.resizeBitmap(absolutePath);
imageBitmap = CameraUtil.fixOrientation(imageBitmap, absolutePath);
Log.d("메시지", "path : "+imageUri.getPath());
Glide.with(this).load(imageUri).into(image);
btn_plus.setVisibility(View.GONE);
layout.setVisibility(View.VISIBLE);
}
}
public abstract void init();
는
public class Activity_MyDiary extends Write_MyArticle implements View.OnClickListener{
private final int DIARY_TYPE = 1;
private String title, comments;
public void init(){
setContentView(R.layout.activity_feed_mydiary);
activity = this;
mContext = this;
btn_plus = (Button)findViewById(R.id.btn_feed_myDiary_plus);
btn_plus.setOnClickListener(this);
btn_post = (Button)findViewById(R.id.btn_feed_myDiary_post);
btn_post.setOnClickListener(this);
btn_delete = (Button)findViewById(R.id.btn_feed_myDiary_delete);
btn_delete.setOnClickListener(this);
edit_title = (EditText)findViewById(R.id.edit_feed_myDiary_title);
edit_contents = (EditText)findViewById(R.id.edit_feed_myDiary_contents);
image = (ImageView)findViewById(R.id.image_feed_myDiary_captured);
layout = (RelativeLayout)findViewById(R.id.layout_feed_myDiary_image);
}
public void onClick(View v){
switch (v.getId()){
case R.id.btn_feed_myDiary_plus:
call_camera();
break;
case R.id.btn_feed_myDiary_post:
if(absolutePath == null){
Toast.makeText(mContext, "사진이 없습니다", Toast.LENGTH_SHORT).show();
return;
}
if(edit_title.getText().toString().equals("")){
Toast.makeText(mContext, "제목을 작성해주세요", Toast.LENGTH_SHORT).show();
return;
}
if(edit_contents.getText().toString().equals("")){
Toast.makeText(mContext, "내용을 입력해 주세요", Toast.LENGTH_SHORT).show();
return;
}
title = edit_title.getText().toString();
comments = edit_contents.getText().toString();
DB_SendPicture db_sendPicture = new DB_SendPicture(this, this);
db_sendPicture.setOnResultPicture(sendPictureListener);
db_sendPicture.execute(imageBitmap);
break;
case R.id.btn_feed_myDiary_delete:
if(imageUri == null){
Toast.makeText(mContext, "사진이 없습니다", Toast.LENGTH_SHORT).show();
return;
}
getContentResolver().delete(imageUri, null,null);
call_camera();
break;
}
}
내 애플 위의 클래스를 확장 카메라를 호출하고 이미지를 캡처하는 기능이있는 활동이다. 나는 클래스 2 번에서 버튼을 클릭하면 는, 그것은 당신이 볼 수 있듯이 (위 한) , call_camera() 메소드가 ACTION_IMAGE_CAPTURE을 사용하여 onActivityResult()
I에 결과를 전달 조상 클래스의 메소드 call_camera()를 호출 내 애플 (갤럭시 S4와 갤럭시 J3)을 테스트하기 위해 2 대의 휴대폰을 가지고있다. 갤럭시 J3에는 모든 것이 잘 동작한다. 하지만 ... 내가 갤럭시 S4와 코드를 시도했을 때, 전화 번호를 전화로 전화 onDestroy() 그림 1 저장 후 쓸 수 있습니다.
나는 활동이 여전히 화면에 있기 때문에 onDestroy()를 호출 할 이유가 없다고 생각합니다. 나는에 call_camera()를 호출하면
또한,에 ... 그것은 너무 은하 S4에 잘 작동 (안 버튼을 클릭에서) 만들
감사합니다 !!!!!!!!!!!! – heesu