private String getLastImagePath() {
final String[] imageColumns = { MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
Cursor imageCursor = POS.this.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
null, null, imageOrderBy);
if (imageCursor.moveToFirst()) {
// int id = imageCursor.getInt(imageCursor
// .getColumnIndex(MediaStore.Images.Media._ID));
String fullPath = imageCursor.getString(imageCursor
.getColumnIndex(MediaStore.Images.Media.DATA));
return fullPath;
} else {
return "";
}
}
这段代码在Samsung tab中工作,但在Lenovo tab和i-ball tab中不工作。那么,有没有人能帮我找到另一种解决方法来做同样的事情呢?任何帮助都将不胜感激。谢谢你。
这是我的OnActivityResult:
if (requestCode == CmsInter.CAMERA_REQUEST && resultCode == RESULT_OK) {
//Bitmap photo = null;
//photo = (Bitmap) data.getExtras().get("data");
String txt = "";
if (im != null) {
String result = "";
//im.setImageBitmap(photo);
im.setTag("2");
int index = im.getId();
String path = getLastImagePath();
try {
bitmap1 = BitmapFactory.decodeFile(path, options);
bitmap = Bitmap.createScaledBitmap(bitmap1, 512, 400, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytData = baos.toByteArray();
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
result = Base64.encode(bytData);
bytData = null;
} catch (OutOfMemoryError ooM) {
System.out.println("OutOfMemory Exception----->" + ooM);
bitmap1.recycle();
bitmap.recycle();
} finally {
bitmap1.recycle();
bitmap.recycle();
}
}
}
像这样试试
像下面这样传递相机意图
Intent intent = new Intent(this);
startActivityForResult(intent, REQ_CAMERA_IMAGE);
并在捕获图像后编写OnActivityResult
,如下所示
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
knop.setVisibility(Button.VISIBLE);
// CALL THIS METHOD TO GET THE URI FROM THE BITMAP
Uri tempUri = getImageUri(getApplicationContext(), photo);
// CALL THIS METHOD TO GET THE ACTUAL PATH
File finalFile = new File(getRealPathFromURI(tempUri));
System.out.println(mImageCaptureUri);
}
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
public String getRealPathFromURI(Uri uri) {
String path = "";
if (getContentResolver() != null) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
path = cursor.getString(idx);
cursor.close();
}
}
return path;
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
Bitmap OutImage = Bitmap.createScaledBitmap(inImage, 1000, 1000,true);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), OutImage, "Title", null);
return Uri.parse(path);
}
我正在开发一个Android应用程序。它有一个功能,捕获的图像应该显示在屏幕上,我需要得到那个图像路径,这样我就可以把那个图像发送到服务器。 我可以在屏幕上显示图像,但无法获得绝对图像路径。 我得到的路径像: 如何获取实际图像路径? 这是我的密码: 值如上所示。 我如何从这个路径得到我的绝对图像路径。
问题内容: 我有一个可以制作图片并上传图片的应用。上载需要照片的文件路径,但无法获取。 这是我的代码: 请帮助我获取文件路径。 谢谢 问题答案: 发布到Twitter时,需要在发布请求中发送图片在设备上的实际路径。我发现很难找到实际的路径,而且经常会发现错误的路径。 为了解决这个问题,一旦有了a ,我就可以使用来获取。随后,我使用实例获取设备上的实际路径。 这是生产代码,并且经过了自然测试。;-)
我在我的屏幕上有四个图像视图,从相机中捕获图像并显示在其中,现在我想将这些图像上传到服务器上。因此,我使用了下面的代码来获取它们的路径,但它通过了异常。是否有可能从摄像机拍摄的图像视图将图像上传到服务器(无需将图像存储到内存中)。
我制作了一个应用程序。它有两个上传照片的选项: 1) 用照相机拍照 2)从画廊采摘 我的问题是在activityresult中获取这些意图之后的文件路径。是否有任何方法可以为获取这些路径,这些路径也会考虑sdk级别的更改?例如,直到KitKat是文件系统的1种类型,KitKat之后是其他类型。
如何获取相机捕获的原始图像的路径或uri。当我使用下面的代码时,它会返回google文档中提到的原始图像的缩略图。我想要原始图像的路径或uri。 我使用了以下代码,但它返回一个缩略图。
我想首先捕获图像并将其查看到ImageView,然后单击将图像保存到FireBase。