从照片库中检索照片

时间:2016-03-08 20:47:01

标签: android

我找到了这段代码并尝试在我的应用程序中实现,它打开了库,让我选择一张照片,然后应用程序停止工作并关闭。

这是我第一次尝试将图像上传到mysql,而且我一开始就陷入困境。

 buttonChoose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                showFileChooser();
            }
        });

 private void showFileChooser() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
    }




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

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null)
    {
        Uri filePath = data.getData();

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

1 个答案:

答案 0 :(得分:1)

Uri filePath = data.getData();

对于大多数Uri值,这将毫无意义。

ImageView填充Uri的最佳解决方案是使用a third-party image loading library,例如Picasso

如果您坚持自己这样做,则需要分叉后台线程,使用ContentResolveropenInputStream()获取InputStream支持的内容Uri使用BitmapFactorydecodeStream()获取Bitmap,然后(在主应用程序线程上)使用ImageView更新Bitmap