마스터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일 채택됨
...