Android 从Google照片库加载用于裁剪的图像

Android 从Google照片库加载用于裁剪的图像,android,google-plus,crop,photos,Android,Google Plus,Crop,Photos,是否可以从谷歌照片中裁剪图像?我正在创建的应用程序允许用户选择图像并进行裁剪。选择图像时,会要求用户选择一个应用程序来完成actionAlbum、Google Photos等。从album中选择并裁剪图像效果很好,但从Google Photos中选择一个图像时不会出错。BBM和WhatsApp等应用程序允许从照片中裁剪来上传个人资料图片。我想做类似的事情 这是我的密码: 注意:这是针对KitKat和HigherAPI19的,有以下解决方法: @Override protected void on

是否可以从谷歌照片中裁剪图像?我正在创建的应用程序允许用户选择图像并进行裁剪。选择图像时,会要求用户选择一个应用程序来完成actionAlbum、Google Photos等。从album中选择并裁剪图像效果很好,但从Google Photos中选择一个图像时不会出错。BBM和WhatsApp等应用程序允许从照片中裁剪来上传个人资料图片。我想做类似的事情

这是我的密码:


注意:这是针对KitKat和HigherAPI19的,有以下解决方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CROP_PIC_REQUEST_CODE) {
        if (data != null) {

            Bitmap bitmap = null;

            if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                Bundle extras = data.getExtras();
                bitmap = extras.getParcelable("data");
            }
            else {
                Uri uri = data.getData();

                try {
                    bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(bitmap!=null) billImg.setImageBitmap(bitmap);
        }
    }
}
这个问题可能是因为,在android 5.0之上,裁剪函数在onActivityResult中返回一个URI而不是位图,因此您必须相应地处理ti


无论如何,我认为最好使用这样一个库,它经过优化并处理不同的情况。

。有可用的;请用一个。啊,好的,我明白了。我要用图书馆。谢谢你的链接
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CROP_PIC_REQUEST_CODE) {
        if (data != null) {

            Bitmap bitmap = null;

            if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                Bundle extras = data.getExtras();
                bitmap = extras.getParcelable("data");
            }
            else {
                Uri uri = data.getData();

                try {
                    bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(bitmap!=null) billImg.setImageBitmap(bitmap);
        }
    }
}