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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是实现打开相机或本地上传的完整代码,包括 XML 和 Java 代码,供您参考: 1. 打开相机: activity_main.xml: ```xml <Button android:id="@+id/btn_capture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拍照" /> ``` MainActivity.java: ```java private static final int REQUEST_CAPTURE_IMAGE = 100; private Button btnCapture; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnCapture = findViewById(R.id.btn_capture); btnCapture.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { openCamera(); } }); } private void openCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, REQUEST_CAPTURE_IMAGE); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CAPTURE_IMAGE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); // 在这里处理拍摄的照片 } } ``` 2. 打开本地相册: activity_main.xml: ```xml <Button android:id="@+id/btn_pick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择照片" /> ``` MainActivity.java: ```java private static final int REQUEST_PICK_IMAGE = 200; private Button btnPick; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnPick = findViewById(R.id.btn_pick); btnPick.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pickImage(); } }); } private void pickImage() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, REQUEST_PICK_IMAGE); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_PICK_IMAGE && resultCode == RESULT_OK) { Uri uri = data.getData(); // 在这里处理选中的照片 } } ``` 希望以上代码可以帮助您实现打开相机或本地上传的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值