Android 获取相册图片,裁剪

1、首先定义常量

//先定义常量  

 private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择
    private static final int PHOTO_REQUEST_CUT = 3;// 结果

2、这里是button的点击事件

//button 点击事件

xc_but.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                // 激活系统图库,选择一张图片
                Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY
                startActivityForResult(intent, PHOTO_REQUEST_GALLERY);

     

            }
        });
 

/*

*获取返回数据

*/

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == PHOTO_REQUEST_GALLERY) {
            // 从相册返回的数据
            if (data != null) {
                // 得到图片的全路径
                Uri uri = data.getData();
                crop(uri);
            }
        } else if (requestCode == PHOTO_REQUEST_CUT) {
            // 从剪切图片返回的数据
            if (data != null) {
                bitmap = data.getParcelableExtra("data");
                imgv.setImageBitmap(bitmap);
             
            }

        }
 

    }

/*
     * 剪切图片
     */
    private void crop(Uri uri) {
        // 看到有人问裁剪的路径
        // 获取系统时间 然后将裁剪后的图片保存至指定的文件夹

        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
        String address = sDateFormat.format(new java.util.Date());
        Uri imageUri = Uri.parse("aaaaa/" + address + ".JPEG");

        // 裁剪图片意图
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", "true");
        // 裁剪框的比例,1:1
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        // 裁剪后输出图片的尺寸大小
        intent.putExtra("outputX", 486);//这里要注意适配或根据需求更改,不然会报错
        intent.putExtra("outputY", 486);//这里要注意适配或根据需求更改,不然会报错
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);// 输出路径
        intent.putExtra("outputFormat", "JPEG");// 图片格式
        intent.putExtra("noFaceDetection", false);// 取消人脸识别 true 取消, false 不取消
        intent.putExtra("return-data", true);


        // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT
        startActivityForResult(intent, PHOTO_REQUEST_CUT);
    }

这里有一部分查看了其他博客,但是忘了是谁的了,不好意思了。

猜你喜欢

转载自blog.csdn.net/yuehua_zhang/article/details/90022777