我想以字符串形式获取图像扩展名(例如"jpg“、"png”、"bmp“ecc)。从图库中加载或从相机中拾取的图像。
我已经使用此表单中的方法从库中加载图像
private static final int SELECT_PICTURE_ACTIVITY_REQUEST_CODE = 0;
....
private void selectPicture() {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, SELECT_PICTURE_ACTIVITY_REQUEST_CODE);
}
....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
.........
}
cursor.close();
}
break;
}
}发布于 2012-03-18 20:25:39
filePath.substring(filePath.lastIndexOf(".")); // Extension with dot .jpg, .png或
filePath.substring(filePath.lastIndexOf(".") + 1); // Without dot jpg, png发布于 2016-04-09 17:07:05
我知道这已经很晚了,但是对于那些仍然有问题的人来说,当getContentResolver()路径包含空格时,.getType(Uri)返回null。这也解决了通过文件管理器而不是图库打开图像时的问题。此方法返回文件的扩展名(jpg、png、pdf、epub等)。
public static String getMimeType(Context context, Uri uri) {
String extension;
//Check uri format to avoid null
if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
//If scheme is a content
final MimeTypeMap mime = MimeTypeMap.getSingleton();
extension = mime.getExtensionFromMimeType(context.getContentResolver().getType(uri));
} else {
//If scheme is a File
//This will replace white spaces with %20 and also other special characters. This will avoid returning null values on file name with spaces and special characters.
extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString());
}
return extension;
}发布于 2017-05-12 14:34:25
getContentResolver().getType(theReceivedUri);上面的代码片段将类型设置为"media/format“
https://stackoverflow.com/questions/9758151
复制相似问题