第一种方式:
Intent intent = new Intent();
intent.setType( "image/*" );
intent.setAction( Intent.ACTION_GET_CONTENT );
startActivityForResult( Intent.createChooser( intent , "select picture" ) , REQUEST_LOAD_IMAGE );
第二种方式:
Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI );
startActivityForResult( intent , REQUEST_LOAD_IMAGE );
输入选择图片活动后,列表不同。你能告诉我原因吗?
如果我要在Android手机上列出所有照片,我该怎么办?感谢
答案 0 :(得分:0)
如果您希望用户根据MIME类型选择内容,请使用convert(varchar(255), (convert(decimal(10,2), Rate) * 1.1))
。
如果您希望用户选择某个特定集合(由ACTION_GET_CONTENT
标识),请使用Uri
。
如果出现平局,请使用ACTION_PICK
。虽然ACTION_GET_CONTENT
未正式弃用,但Dianne Hackborn recommends ACTION_GET_CONTENT
。
取自CommonsWare的回答here
答案 1 :(得分:0)
要列出所有照片,您可以执行以下操作:
假设您有一个按钮,并打开图像选择器onClick,
int SELECT_FILE = 1;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(
Intent.createChooser(intent, "Select File"),
SELECT_FILE);
}
});
假设您有一个imageView,在其中显示所选图像,然后:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
String[] projection = {MediaStore.MediaColumns.DATA};
Cursor cursor = managedQuery(selectedImageUri, projection, null, null,
null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
cursor.moveToFirst();
String selectedImagePath = cursor.getString(column_index);
Picasso.with(this)
.load(selectedImagePath)
.into(imageView);
}
}