我试图在导航滑块内实现一个片段。我需要在我的一个片段中创建一个按钮,以从我的默认库中导入图像。我在线尝试了很多代码,但它们似乎无法正常工作。
答案 0 :(得分:0)
如果您在Android 6.0中测试您的应用程序,则依赖于您正在使用的Android版本,而不是在运行时请求权限,否则android不会返回图像。
对于Pre-Marshmallow,您可以使用代码:
Intent pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
pickIntent.setType("image/*");
startActivityForResult(pickIntent, 0);
然后覆盖方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, requestCode, data);
try {
// When an Image is picked
if (requestCode == 0 && resultCode == Activity.RESULT_OK && null != data) {
Uri selectedImage = data.getData();
image.setImageBitmap(BitmapFactory.decodeFile(getRealPathFromURI(selectedImage)));
} else
new ShowErrorToast(getActivity(), "Hey! your Android phone is busy");
} catch (Exception e) {
}
}
比使用方法获取图像路径
public String getRealPathFromURI(Uri data) {
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(data
, filePathColumn, null, null, null);
String picturePath = "";
if (cursor != null) {
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
picturePath = cursor.getString(columnIndex);
cursor.close();
}
return picturePath;
}
对于Marshmallow,你应该要求许可运行时并遵循上面的代码