2011-04-22 14 views
6

Androidのアプリケーションでカメラ機能を使いたいです。Androidのカメラ

ボタンコントロールのクリックで画像をキャプチャしたいのですが、私はそれの最良の例をお勧めします。

+2

「アンドロイドカメラキャプチャ」 – Mat

答えて

3
+0

を参考にしてください。android.hardware.Camera2サンプルを更新してください.SDKをアップデートした後、Listnerのようなクラスを解決できません – koutuk

1
2
@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button button = (Button)findViewById(id); 
button.setonClickListener(new View.onClickListener() 
      { 
     public void onClick(View view) 
      { 
       Intent intent = new Intent(); 
       intent.putExtra("aspectX", 730); 
       intent.putExtra("aspectY", 1115); 
       intent.putExtra("outputX", 730); 
       intent.putExtra("outputY", 1115); 
       intent.setAction("android.media.action.IMAGE_CAPTURE"); 
      startActivityForResult(intent, PICK_FROM_CAMERA); 
       } 
     @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode) 
     { 
      case PICK_FROM_CAMERA : if (resultCode == RESULT_OK) 
      { 
       ContentValues values = new ContentValues(); 
       values.put(Images.Media.TITLE, "title"); 
       values.put(Images.Media.BUCKET_ID, "test"); 
       values.put(Images.Media.DESCRIPTION, "test Image taken"); 
       values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
       Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); 
       Bitmap photo = (Bitmap) data.getExtras().get("data"); 
       ((ImageView)findViewById(R.id.selectedimage)).setImageBitmap(photo); 
       OutputStream outstream; 
       try { 
         outstream = getContentResolver().openOutputStream(uri); 
         photo.compress(Bitmap.CompressFormat.JPEG,100, outstream); 
         outstream.close(); 
       } catch (FileNotFoundException e) {} 
       catch (IOException e){} 
      } 
      break; 

EDIT:その完璧と働きました。それを試してみて、それが好きならフィードバックをください。

2

この答えをチェックしてください:

public class ImageUploading extends Activity 
{ 
    Uri imageUri = null; 
    ImageButton btnSubmit ; 
    public void onCreate(Bundle onsavedInstantState) 
    { 
     super.onCreate(onsavedInstantState); 
     setContentView(R.layout.edit_profile); 
     btnSubmit    = (ImageButton) findViewById(R.id.btnSubmit);  
     btnSubmit.setClickable(true);  
     btnSubmit.setOnClickListener(new View.OnClickListener() 
     {   
      @Override 
      public void onClick(View v) {   
       Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE"); 
       File imgFile = new File(Environment.getExternalStorageDirectory(),"my_photo.png"); 
       imageUri = Uri.fromFile(imgFile); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);    
       startActivityForResult(cameraIntent,0);    
      } 
     }); 
    } 
    @Override 
    public void onActivityResult(int RequestCode, int ResultCode, Intent imageIntent) 
    { 
     super.onActivityResult(RequestCode, ResultCode, imageIntent); 
     try 
     { 
      if(RequestCode == 0) 
      { 
       if(ResultCode == Activity.RESULT_OK) 
       { 
        getContentResolver().notifyChange(imageUri, null); 
        ContentResolver objContentResolver = getContentResolver(); 
        Bitmap imgBitmap = android.provider.MediaStore.Images.Media.getBitmap(objContentResolver, imageUri); 
        Drawable imgDrawable = new BitmapDrawable(imgBitmap); 
        btnSubmit.setBackgroundDrawable(imgDrawable); 
       } 
      }   
     } 
     catch(Exception e) 
     {} 
    } 
} 

これは、ボタンのクリックで画像をキャプチャし、そのボタン自体の背景画像としてこの画像を設定します。