介绍
这期内容当中小编将会给大家带来有关如何在Android中获取图片路径,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>权限强>
& lt; uses-permission Android: name=癮ndroid.permission.READ_EXTERNAL_STORAGE",/比; & lt; uses-permission  android: name=癮ndroid.permission.WRITE_EXTERNAL_STORAGE",/在
<强>动态申请权限强>
String [], mPermissionList =, new String [] { ,,Manifest.permission.WRITE_EXTERNAL_STORAGE, ,,Manifest.permission.READ_EXTERNAL_STORAGE}; ,public static  final int  REQUEST_PICK_IMAGE =, 11101;
<>强打开手机相册强>
ActivityCompat.requestPermissions (MainActivity.this, mPermissionList,, 100);
@Override ,public void  onRequestPermissionsResult (int requestCode, @NonNull String[],权限,@NonNull int [], grantResults), { super.onRequestPermissionsResult才能(requestCode,权限,grantResults); switch 才能;(requestCode), { ,,case 100: ,,,boolean writeExternalStorage =, grantResults [0],==, PackageManager.PERMISSION_GRANTED; ,,,boolean readExternalStorage =, grantResults [1],==, PackageManager.PERMISSION_GRANTED; ,,,if (0, grantResults.length 的在,,,,,writeExternalStorage ,,, readExternalStorage), { ,,,,getImage (); ,,,},{else ,,,,Toast.makeText(,,,请设置必要权限“,,Toast.LENGTH_SHORT),告诉(); ,,,} ,,,休息; ,,} ,} ,private void  getImage (), { if 才能;(Build.VERSION.SDK_INT & lt;, Build.VERSION_CODES.KITKAT), { ,,startActivityForResult (new 意图(Intent.ACTION_GET_CONTENT) .setType(“图像/*“), ,,,,REQUEST_PICK_IMAGE); ,,},{else ,,Intent Intent =, new 意图(Intent.ACTION_OPEN_DOCUMENT); ,,intent.addCategory (Intent.CATEGORY_OPENABLE); ,,intent.setType(“图像/*“); ,,startActivityForResult(意图,REQUEST_PICK_IMAGE); ,,} 以前,}><强>获取相册返回的Uri 强>
@Override ,protected void  onActivityResult (int requestCode, int resultCode,, Intent 数据),{ super.onActivityResult才能(requestCode, resultCode,,数据); if 才能;(resultCode ==, Activity.RESULT_OK), { ,,switch (requestCode), { ,,,case REQUEST_PICK_IMAGE: ,,,,if (data !=, null), { ,,,,,String realPathFromUri =, RealPathFromUriUtils.getRealPathFromUri(这个,,data.getData ()); ,,,,},{else ,,,,,Toast.makeText(,,“图片损坏,请重新选择“,,Toast.LENGTH_SHORT),告诉(); ,,,,} ,,,,休息; ,,} ,,} 以前,}>这里的data.getData()返回的就是Uri, realPathFromUri为真正路径
<强>获取真正路径强>
package com.example.richeditortest; import android.annotation.SuppressLint; import android.content.ContentUris; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.provider.DocumentsContract; import android.provider.MediaStore; public class  RealPathFromUriUtils {/* * *,才能根据Uri获取图片的绝对路径 ,* *,才能@param context 上下文对象 *,才能@param uri ,图片的Uri *,才能@return 如果Uri对应的图片存在,,那么返回该图片的绝对路径,,否则返回零 ,*/,public static  String getRealPathFromUri (Context 上下文,Uri uri), { int 才能;sdkVersion =, Build.VERSION.SDK_INT; if 才能;(sdkVersion 祝辞=,19),{,//api 祝辞=,19 ,,return getRealPathFromUriAboveApi19(上下文,uri); ,,},else {,//api & lt;, 19 ,,return getRealPathFromUriBelowAPI19(上下文,uri); ,,} ,}/* * *,才能适配api19以下(不包括api19),根据uri获取图片的绝对路径 ,* *,才能@param context 上下文对象 *,才能@param uri ,图片的Uri null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何在Android中获取图片路径