无法从图库 android 应用中 select 图片(灰显)
Unable to select image from gallery android app (grayed out)
我正在尝试允许应用程序用户 select 从他们的图库中获取图像,并且仅当用户实际 select 时才设置图像 uri。我面临的问题是,当我打开图片库时,所有图片都显示为灰色,而且无论图片格式如何,我都无法 select 一张图片。这是该部分的代码:
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());
}
}
我建议您获取选定的图像路径而不是图像类型,然后将其加载到您的图像视图中。试试这个,
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
(或您用于开始 activity
的数字)
星号(*)应该放在正斜杠(/)之后。
内容类型 "image/*" 表示类别图像,具有任何扩展名(.jpeg、.png、...)
以下对我有用
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
我正在尝试允许应用程序用户 select 从他们的图库中获取图像,并且仅当用户实际 select 时才设置图像 uri。我面临的问题是,当我打开图片库时,所有图片都显示为灰色,而且无论图片格式如何,我都无法 select 一张图片。这是该部分的代码:
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());
}
}
我建议您获取选定的图像路径而不是图像类型,然后将其加载到您的图像视图中。试试这个,
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
(或您用于开始 activity
的数字)
星号(*)应该放在正斜杠(/)之后。
内容类型 "image/*" 表示类别图像,具有任何扩展名(.jpeg、.png、...)
以下对我有用
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);