由网友(Byford 百富)分享简介:这是当我从内部存储(库)获得的图像我的code。在棒棒糖文件路径返回始终为空。如果(要求code == PICK_IMAGE){如果(结果code == RESULT_OK){//形象成功地挑//发射载活动乌里selectedImage = data.getData();的String [] filePathColu...![棒棒糖好邪恶 谷歌自曝Android L名称](https://p.xsw88.cn/allimgs/daicuo/20230903/5713.png)
这是当我从内部存储(库)获得的图像我的code。 在棒棒糖文件路径返回始终为空。
如果(要求code == PICK_IMAGE){
如果(结果code == RESULT_OK){
//形象成功地挑
//发射载活动
乌里selectedImage = data.getData();
的String [] filePathColumn = {MediaStore.Images.Media.DATA};
光标光标= getContentResolver()查询(selectedImage,filePathColumn,NULL,NULL,NULL);
cursor.moveToFirst();
参数:columnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
FILE_PATH = cursor.getString(参数:columnIndex);
Log.d(的getClass()的getName(),FILE_PATH+ FILE_PATH);
=了fileURI Uri.parse(文件://+ FILE_PATH);
cursor.close();
launchUploadActivity(真,PICK_IMAGE);
}否则,如果(结果code == RESULT_CANCELED){
//用户取消记录
Toast.makeText(getApplicationContext(),用户取消图像选择,Toast.LENGTH_SHORT).show();
} 其他 {
//无法录制视频
Toast.makeText(getApplicationContext()!对不起未能挑形象,Toast.LENGTH_SHORT).show();
}
解决方案
感谢名单的是,我找到了解决办法。
乌里selectedImage = data.getData();
字符串wholeID = DocumentsContract.getDocumentId(selectedImage);
//分割在结肠,使用数组中的第二项
串的id = wholeID.split(:)[1];
字符串[]列= {MediaStore.Images.Media.DATA};
//其中id等于
字符串SEL = MediaStore.Images.Media._ID +=;
光标光标= getContentResolver()。
查询(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
列,SEL,新的String [] {ID},NULL);
字符串文件路径=;
INT参数:columnIndex = cursor.getColumnIndex(列[0]);
如果(cursor.moveToFirst()){
文件路径= cursor.getString(参数:columnIndex);
}
cursor.close();
setImageFromIntent(文件路径);
![棒棒糖好邪恶 谷歌自曝Android L名称](https://p.xsw88.cn/allimgs/daicuo/20230903/5713.png)
this is my code when i'm getting image from internal storage (gallery). In lollipop file path return always null.
if (requestCode == PICK_IMAGE) {
if(resultCode == RESULT_OK){
//image successfully picked
// launching upload activity
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
columnindex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
file_path = cursor.getString(columnindex);
Log.d(getClass().getName(), "file_path"+file_path);
fileUri = Uri.parse("file://" + file_path);
cursor.close();
launchUploadActivity(true, PICK_IMAGE);
}else if (resultCode == RESULT_CANCELED) {
// user cancelled recording
Toast.makeText(getApplicationContext(),"User cancelled image selection", Toast.LENGTH_SHORT).show();
} else {
// failed to record video
Toast.makeText(getApplicationContext(),"Sorry! failed to pick image", Toast.LENGTH_SHORT).show();
}
解决方案
Thanx all,I found the solution.
Uri selectedImage = data.getData();
String wholeID = DocumentsContract.getDocumentId(selectedImage);
// Split at colon, use second item in the array
String id = wholeID.split(":")[1];
String[] column = { MediaStore.Images.Media.DATA };
// where id is equal to
String sel = MediaStore.Images.Media._ID + "=?";
Cursor cursor = getContentResolver().
query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{ id }, null);
String filePath = "";
int columnIndex = cursor.getColumnIndex(column[0]);
if (cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
cursor.close();
setImageFromIntent(filePath);
相关推荐
最新文章