我不想使用任何位图调整大小代码,如果我可以帮助它。 我有一个方法来获得一个MINI缩略图URI时,我从画廊的照片,但是当我尝试做用相机一样它不工作:Android获取缩略图Uri从相机获取图片后
这里是方法:
private Uri getParsedUri(Uri selectedImageUri) {
Uri parsed = null;
try {
String uri = getThumbnailPath(selectedImageUri);
if (uri != null) {
Timber.d("Thumb uri found %s", uri);
File file = new File(uri);
parsed = Uri.fromFile(file);
Timber.d("thumb uri parsed : %s", parsed);
} else {
Timber.d("Thumb uri not found, using : %s", selectedImageUri);
}
} catch (Exception e){
Timber.e(e, "Error getting mini uri");
}
return parsed;
}
private String getThumbnailPath(Uri uri) {
String[] projection = { MediaStore.Images.Media._ID };
String result = null;
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
cursor.moveToFirst();
long imageId = cursor.getLong(column_index);
cursor.close();
Cursor cursor2 = MediaStore.Images.Thumbnails.queryMiniThumbnail(
getContentResolver(), imageId,
MediaStore.Images.Thumbnails.MINI_KIND,
null);
if (cursor2 != null && cursor2.getCount() > 0) {
cursor2.moveToFirst();
result = cursor2.getString(cursor2.getColumnIndexOrThrow(MediaStore.Images.Thumbnails
.DATA));
cursor2.close();
}
}
return result; //always null for pictures from the Camera
}
这里是我提供的相机应用程序的URI额外的:
private void onTakePhotoFromCameraClick() {
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// takePicUri = Uri.fromFile(getTempFile(ProductNewActivity.this));
takePicUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new ContentValues());
intent.putExtra(MediaStore.EXTRA_OUTPUT,
takePicUri);
startActivityForResult(intent, OPTION_TAKE_PHOTO_FROM_CAMERA);
}
private File getTempFile(Context context) {
final File path = new File(Environment.getExternalStorageDirectory(),
context.getPackageName());
if (!path.exists()) {
path.mkdir();
}
long millis = new Date().getTime();
String name_file = String.valueOf(millis);
File tempImageFile = new File(path, "MyImage_" + name_file + ".tmp");
return tempImageFile;
}
两者越来越开放的(使用内容分解或创建我的自定义URI的方法,不工作,我从来没有能够得到一个有没有一种方法可以指示系统生成缩略图?缩略图是否始终生成?
编辑:我想我没有解释清楚。我需要2个Uri:一个用于放大图像,另一个用于缩略图。我不需要位图。我正在使用Universal Image Loader来显示图像,所以我不需要小的位图。我自己生成大图的Uri,但我想找到一种方法让Android生成缩略图,因为它已经为图库的图片添加了它。
为什么否决:
然后在OnActivityResult你可以从喜欢的意图提取大拇指?你能解释一下你为什么拒绝了,这样我就可以纠正错误吗? – vallllll