2012-10-10 20 views
0

我知道呼叫系統相機的Android轉移系統相機,然後將圖像顯示在ImageView的

Intent intent = new Intent(); 
intent.setAction("android.media.action.STILL_IMAGE_CAMERA"); 
startActivity(intent); 

我想在ImageView的顯示畫面,但我卻不知道該怎麼做。 有沒有人可以給我一個示例代碼?

EDIT1: 我還需要存儲

String strPath = Environment.getExternalStorageDirectory().toString(); 
    File path = new File(strPath); 
    if(!path.exists()) 
    path.mkdirs(); 
    strFileName = "test.jpg"; 
    strFilePath = strPath + "/" + strFileName; 

    File file = new File(strFilePath); 
    Uri uri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 

我使用了代碼來存儲,但如何在拍攝時看到的預覽。

+0

請給這個問題的正確描述。 – Shrikant

+0

我認爲你拍照後必須使用onActivityResult方法 –

回答

0

您需要使用startActivityForResult而不是startActivity,然後在onActivityResult中獲取結果。事情是這樣的:

public class MyCameraActivity extends Activity { 
private static final int CAMERA_REQUEST = 1888; 
private ImageView imageView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
    Button photoButton = (Button) this.findViewById(R.id.button1); 
    photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     imageView.setImageBitmap(photo); 
    } 
} 

}

相關問題