选择的图像位图返回方法



我是Android的新手。我在选择图像和返回结果时有问题。我有一种方法是getImageFromGallery()我的范围是此方法调用,然后我将从图库中选择一个图像,然后作为位图返回。但是问题是 onActivityResult()设置了位图后设置位图。如果我选择图像,应该返回选定的图像位图文件。请帮助找出解决方案。


这是我的代码。

private Bitmap bitmap;


 public Bitmap getImageFromGallery(){
    Intent i = new Intent(
            Intent.ACTION_PICK,
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(i, RESULT_LOAD_IMAGE);
    return  bitmap;}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();

        String[] filePathColumn = { MediaStore.Images.Media.DATA };
        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        bitmap = BitmapFactory.decodeFile(picturePath);
    }
}

我想返回选定的位图值。

尝试以下:

public void getImageFromGallery(){
    Intent i = new Intent(Intent.ACTION_PICK);
    i.setType("image/*");
    startActivityForResult(i, RESULT_LOAD_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK){
        Uri imageUri = intent.getData();
        mBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
    }
}

您的getImageFromGallery无法返回位图,因为您尚未选择它。您只能在onActivityResult中设置它。

请参阅此处的更多信息。

最新更新