마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 누르면 실행되는 것을 액티비티 실행시 자동으로 실행되도록 바꾸고 싶습니다

0 추천
import java.io.File;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
 
public class CropActivity extends Activity implements OnClickListener
{
 private static final int PICK_FROM_CAMERA = 0;
 private static final int PICK_FROM_ALBUM = 1;
 private static final int CROP_FROM_CAMERA = 2
 private Uri mImageCaptureUri;
 private ImageView mPhotoImageView;
 private Button mButton;
  
 @Override
 public void onCreate(Bundle savedInstanceState) 
 {  
  super.onCreate(savedInstanceState);  
  setContentView(R.layout.activity_crop); 
  mButton = (Button) findViewById(R.id.button);
  mPhotoImageView = (ImageView) findViewById(R.id.image);
  mButton.setOnClickListener(this);  } 
 /**   * 카메라에서 이미지 가져오기   */
 private void doTakePhotoAction() 
 
    
  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
  // 임시로 사용할 파일의 경로를 생성   
  String url = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg"
  mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
  intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);  
  // 특정기기에서 사진을 저장못하는 문제가 있어 다음을 주석처리 합니다.    //
  intent.putExtra("return-data", true);
  startActivityForResult(intent, PICK_FROM_CAMERA);
  
 /**   * 앨범에서 이미지 가져오기   */ 
 private void doTakeAlbumAction()
 {  
  // 앨범 호출  
  Intent intent = new Intent(Intent.ACTION_PICK);
  intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);  
  startActivityForResult(intent, PICK_FROM_ALBUM);  } 
  
 @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {  
  if(resultCode != RESULT_OK)  
  {   
   return;
   }    
  switch(requestCode) 
  {    
  case CROP_FROM_CAMERA:  
  {        // 크롭이 된 이후의 이미지를 넘겨 받습니다.  
   // 이미지뷰에 이미지를 보여준다거나 부가적인 작업 이후에   
   // 임시 파일을 삭제합니다.      
   final Bundle extras = data.getExtras();     
   if(extras != null)       
   {        
    Bitmap photo = extras.getParcelable("data");   
    mPhotoImageView.setImageBitmap(photo);   
    }         // 임시 파일 삭제  
   File f = new File(mImageCaptureUri.getPath()); 
   if(f.exists())      
   {         
    f.delete(); 
    }      
   break;   
   }   
  case PICK_FROM_ALBUM:
  {     
   // 이후의 처리가 카메라와 같으므로 일단  break없이 진행합니다.    
   // 실제 코드에서는 좀더 합리적인 방법을 선택하시기 바랍니다.  
   mImageCaptureUri = data.getData();    
   }      
  case PICK_FROM_CAMERA:
  {    
   // 이미지를 가져온 이후의 리사이즈할 이미지 크기를 결정합니다.   
   // 이후에 이미지 크롭 어플리케이션을 호출하게 됩니다.    
   Intent intent = new Intent("com.android.camera.action.CROP"); 
   intent.setDataAndType(mImageCaptureUri, "image/*");
   intent.putExtra("outputX", 350);      
   intent.putExtra("outputY", 350); 
   intent.putExtra("aspectX", 1);     
   intent.putExtra("aspectY", 1);      
   intent.putExtra("scale", true);  
   intent.putExtra("return-data", true); 
   startActivityForResult(intent, CROP_FROM_CAMERA);  
   break;  
   
  
  
 @Override  public void onClick(View v) 
 
  DialogInterface.OnClickListener cameraListener = new DialogInterface.OnClickListener()  
  {   
   @Override
   public void onClick(DialogInterface dialog, int which)    
   {      
    doTakePhotoAction();
    }  
   };   
   DialogInterface.OnClickListener albumListener = new DialogInterface.OnClickListener()
   {   
    @Override   
    public void onClick(DialogInterface dialog, int which)  
    {    
     doTakeAlbumAction();  
     }  
    };  
    DialogInterface.OnClickListener cancelListener = new DialogInterface.OnClickListener() 
    {   
     @Override
     public void onClick(DialogInterface dialog, int which)
     {   
      dialog.dismiss(); 
      
     };  
     new AlertDialog.Builder(this)  
     .setTitle("업로드할 이미지 선택")
     .setPositiveButton("사진촬영", cameraListener)
     .setNeutralButton("앨범선택", albumListener)     
     .setNegativeButton("취소", cancelListener)   
     .show();
     }
  
  }

 

첫 사진의 이미지 로드 버튼을 누르면 실행되는 두번째 사진의 내용을 버튼을 없애고 액티비티 전환시 자동으로 실행되도록 하고 싶은데 어떻게 해야 하나요

라미아 (170 포인트) 님이 2014년 11월 18일 질문

1개의 답변

0 추천
 
채택된 답변
onclick 안에 내용을 onCreate 내에 붙이세요
aucd29 (218,390 포인트) 님이 2014년 11월 18일 답변
라미아님이 2014년 11월 18일 채택됨
...