【问题标题】:import images from gallery into fragment将图库中的图像导入片段
【发布时间】:2016-01-29 19:24:42
【问题描述】:

我试图在导航滑块中实现一个片段。我需要在我的 1 个片段中创建一个按钮,以从我的默认图库中导入图像。我在网上尝试了很多代码,但它们似乎不起作用。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过编辑您的问题并回答以下问题来帮助我们帮助您:您到底尝试了什么?结果如何?这些结果与您想要的结果有何不同?

标签: android android-fragments fragment navigation-drawer


【解决方案1】:

如果您在 android 6.0 中测试您的应用程序,则取决于您使用的 android 版本,而不是在运行时请求许可,否则 android 不会返回图像。

对于 Pre-Marshmallow,您可以使用代码:

Intent pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        pickIntent.setType("image/*");
        startActivityForResult(pickIntent, 0);

然后重写方法

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, requestCode, data);
        try {
            // When an Image is picked
            if (requestCode == 0 && resultCode == Activity.RESULT_OK && null != data) {
                Uri selectedImage = data.getData();

                image.setImageBitmap(BitmapFactory.decodeFile(getRealPathFromURI(selectedImage)));
            } else
                new ShowErrorToast(getActivity(), "Hey! your Android phone is busy");

        } catch (Exception e) {

        }

    }

比使用方法获取图片路径

public String getRealPathFromURI(Uri data) {
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Cursor cursor = getContentResolver().query(data
                , filePathColumn, null, null, null);
        String picturePath = "";
        if (cursor != null) {
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            picturePath = cursor.getString(columnIndex);
            cursor.close();
        }
        return picturePath;
    }

对于 Marshmallow,您应该请求权限运行时并按照上面的代码进行操作

【讨论】:

  • 感谢您的帮助。正如我上面提到的。我需要单击一个按钮,但我无法识别用户将在哪里单击您在上面提供的所有编码。不应该有任何 onClick 方法。我应该在我的 xml 文件中写什么。
  • 谢谢大家。最终我得到了我的答案。我的错误是我没有使用“视图组”。现在我使用了。它工作得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
相关资源
最近更新 更多