And*_*eaF 31 android android-gallery android-camera
我想得到从图库加载或从相机中拾取的图像的图像扩展名(例如"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;
}
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*iya 64
filePath.substring(filePath.lastIndexOf(".")); // Extension with dot .jpg, .png
Run Code Online (Sandbox Code Playgroud)
要么
filePath.substring(filePath.lastIndexOf(".") + 1); // Without dot jpg, png
Run Code Online (Sandbox Code Playgroud)
Aar*_*ron 22
我知道它已经很晚但是对于那些在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;
}
Run Code Online (Sandbox Code Playgroud)
小智 8
getContentResolver().getType(theReceivedUri);
Run Code Online (Sandbox Code Playgroud)
上面的代码段为您提供"媒体/格式"类型
小智 7
对于“内容://”方案
fun Uri.getFileExtension(context: Context): String? {
return MimeTypeMap.getSingleton()
.getExtensionFromMimeType(context.contentResolver.getType(this))
}
Run Code Online (Sandbox Code Playgroud)
您有多种选择来获取文件扩展名:
1- String filename = uri.getLastPathSegment();
看到这个链接
2-您也可以使用此代码
filePath .substring(filePath.lastIndexOf(".")+1);
Run Code Online (Sandbox Code Playgroud)
但这不是很好的选择。
3-如果您具有文件的URI,则使用此代码
String[] projection = { MediaStore.MediaColumns.DATA,
MediaStore.MediaColumns.MIME_TYPE };
Run Code Online (Sandbox Code Playgroud)
4-如果您有URL,请使用此代码
public static String getMimeType(String url) {
String type = null;
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
if (extension != null) {
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
}
return type;}
Run Code Online (Sandbox Code Playgroud)
亲爱的朋友,我们可以找到任何文件、图像、视频和任何文档的扩展名。为了这。
首先,我们将创建一个GetFileExtension
我们想要调用的方法来查找文件、图像、数据和文档的扩展名。在这里,我取了一个名为的变量:
Uri videouri = data.getData();
Run Code Online (Sandbox Code Playgroud)
在OnActivity
Result 然后我调用它,
onclick(View view)
{
GetFileExtension(videouri);
Toast.makeText(this, "Exten: "+GetFileExtension(videouri), Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
现在创建一个类到类GetFileExtension
:
// Get Extension
public String GetFileExtension(Uri uri)
{
ContentResolver contentResolver=getContentResolver();
MimeTypeMap mimeTypeMap=MimeTypeMap.getSingleton();
// Return file Extension
return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri));
}
Run Code Online (Sandbox Code Playgroud)
由于这种方法,我们可以在java和android中找出任何文件的扩展名。我 100% 确信它对所有制作企业应用程序的人都有效。喜欢就投我一票吧~
我认为这应该可以将您带到您想要的地方(我还没有尝试过,只是阅读了一下,我认为它是可行的)。
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA,
MediaStore.Images.Media.DISPLAY_NAME};
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);
int fileNameIndex = cursor.getColumnIndex(filePathColumn[1]);
String fileName = cursor.getString(fileNameIndex);
// Here we get the extension you want
String extension = fileName.replaceAll("^.*\\.", "");
.........
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38487 次 |
最近记录: |