首页 > 代码库 > Android实现拍照与打开本地图片

Android实现拍照与打开本地图片

代码如下:

public class MainActivity extends Activity {

????private Button btnCamera;

????private Button btnLocalPic;

????private ImageView imageView;

?

????@Override

????protected void onCreate(Bundle savedInstanceState) {

????????// TODO Auto-generated method stub

????????super.onCreate(savedInstanceState);

????????setContentView(R.layout.mainactivity);

????????btnCamera = (Button) this.findViewById(R.id.btnCamera);

????????btnLocalPic = (Button) this.findViewById(R.id.btnlocalPic);

????????imageView = (ImageView) this.findViewById(R.id.imageView1);

?

????????btnCamera.setOnClickListener(new OnClickListener() {

?

????????????@Override

????????????public void onClick(View arg0) {

????????????????// TODO Auto-generated method stub

????????????????Intent intent = new Intent(

????????????????????????android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

????????????????startActivityForResult(intent, 1000);

????????????}

????????});

?

????????btnLocalPic.setOnClickListener(new OnClickListener() {

?

????????????@Override

????????????public void onClick(View arg0) {

????????????????// TODO Auto-generated method stub

????????????????Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

????????????????intent.setType("image/*");

????????????????intent.putExtra("crop", true);

????????????????intent.putExtra("return-data", true);

????????????????startActivityForResult(intent, 1001);

????????????}

????????});

????}

?

????@Override

????protected void onActivityResult(int requestCode, int resultCode, Intent data) {

????????// TODO Auto-generated method stub

????????super.onActivityResult(requestCode, resultCode, data);

????????if (requestCode == 1000 && resultCode == RESULT_OK) {

????????????Bundle bundle = data.getExtras();

????????????Bitmap bm = (Bitmap) bundle.get("data");

????????????imageView.setImageBitmap(bm);

????????} else if (requestCode == 1001 && resultCode == RESULT_OK) {

????????????Uri uri = data.getData();

????????????ContentResolver contentResolver = getContentResolver();

????????????try {

????????????????Bitmap bm = BitmapFactory.decodeStream(contentResolver

????????????????????????.openInputStream(uri));

????????????????imageView.setImageBitmap(bm);

????????????} catch (Exception e) {

????????????????// TODO: handle exception

????????????????e.printStackTrace();

????????????}

????????}

????}

}

Android实现拍照与打开本地图片