使用Intent从Gallery中选择图像

时间:2016-11-09 17:07:45

标签: android android-intent image-gallery android-gallery onactivityresult

我正在尝试从图库中选择并带来图像,我可以带4.4.2版本但5.0.0或更高版本它无效。

单击imageview1时:

imageview1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent galeri_int = new Intent();
                galeri_int.setType("image/*");
                galeri_int.setAction(Intent.ACTION_GET_CONTENT);
                galeri_int.addCategory(Intent.CATEGORY_OPENABLE);


                startActivityForResult(galeri_int,44);

                Log.d("tık","tıklandı");


            }
        });

OnActivityResult:

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


        InputStream stream = null;

        if(data  !=null){

        try {
            stream = getContentResolver().openInputStream(data.getData());
            bitmapx = BitmapFactory.decodeStream(stream);
            stream.close();
            Bitmap resized = resize(bitmapx,1000,1000);

           imageview.setImageBitmap(resized);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        }


    }

它不适用于5.0.0或更高版本,所以我该怎么办?

2 个答案:

答案 0 :(得分:2)

试试这个

Intent intent = new Intent();  
    intent.setType("image/*");  
    intent.setAction(Intent.ACTION_GET_CONTENT);  
    startActivityForResult(Intent.createChooser(intent, "Choose Picture"), 1);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    if(resultCode==RESULT_CANCELED)
    {
        // action cancelled
    }
    if(resultCode==RESULT_OK)
    {
        Uri selectedimg = data.getData();
        imageView.setImageBitmap(MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedimg));
    }
}

答案 1 :(得分:-1)

最后,我通过更改点击监听器解决了我的问题。

imageview1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

        startActivityForResult(i,44);

        Log.d("tık","tıklandı");


    }
});