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

代码如下:

publicclass MainActivity extends Activity {

    private Button btnCamera;

    private Button btnLocalPic;

    private ImageView imageView;

    @Override

    protectedvoid 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

            publicvoid 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

            publicvoid 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

    protectedvoid 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);

        } elseif (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();

            }

        }

    }

}

原文地址:https://www.cnblogs.com/Yellow0-0River/p/4240617.html