Java 无法从gallery android应用程序中选择图像(灰显)

Java 无法从gallery android应用程序中选择图像(灰显),java,android,image,gallery,Java,Android,Image,Gallery,我试图允许应用程序用户从他们的图库中选择图像,并且仅在用户实际选择图像时设置图像uri。我面临的问题是,当我打开图像库时,所有图像都会变灰,无论图像格式如何,我都无法选择图像。以下是我在该部分的代码: hostImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent imageInte

我试图允许应用程序用户从他们的图库中选择图像,并且仅在用户实际选择图像时设置图像uri。我面临的问题是,当我打开图像库时,所有图像都会变灰,无论图像格式如何,我都无法选择图像。以下是我在该部分的代码:

    hostImageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        Intent imageIntent = new Intent();                                                      
        imageIntent.setType("image*/");                                                         
        imageIntent.setAction(Intent.ACTION_GET_CONTENT);                                       
        startActivityForResult(Intent.createChooser(imageIntent,"Choose host image"),000);      

        }
       }
    );
}

public void onActivityResult(int askCode, int retCode, Intent info){                             
    if (retCode==RESULT_OK){
        if (askCode==000){
            hostImageView.setImageURI(info.getData());                                      
        }     
}

我建议您获取选定的图像路径而不是imagetype,然后将其加载到图像视图中。试试这个

    public boolean  click(View v)
{
    Intent intent = new   Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, 1);
    return true;
}

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

    if (requestCode == 1 && 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();

        ImageView imageView = (ImageView) findViewById(R.id.imageView1);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

    }
}

更新库打开代码,如下所示:

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 2);

并在onActivityResult方法中使用数字2或用于启动活动的数字

星号*应在正斜杠后给出

内容类型图像/*表示类别图像,具有任何扩展名.jpeg、.png、

以下几点对我有用

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

请参阅答案以获取画廊操作拾取的完整工作流。[这里][这里]:谢谢这个有效的,非常简单的解决方案!有没有一种方法可以添加到使用相机拍照以及从图库或照片中进行选择?当然可以。您可以使用新的IntentMediaStore.ACTION\u IMAGE\u CAPTURE;太棒了,谢谢。这可能是一个愚蠢的问题,但如何将两者结合起来的最简单方法是从图库/照片中选择,并将拍照作为其中一种选择?