[英]Images don't show gallery effects
我從uris獲取圖像,但是它們沒有顯示任何已完成的畫廊效果(例如,灰度,棕褐色)。 我希望得到編輯后的圖像。 例如:
ContentResolver cr = activity.getContentResolver();
Cursor cur = cr.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // data
new String[] { MediaStore.Images.Media._ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME }, // Which columns to return
"", // Which rows to return (all rows)
null, // Selection arguments (none)
MediaStore.Images.Media.DATE_ADDED+" DESC" // Ordering
);
ArrayList<String> bucketImageList = new ArrayList<String>();
//get bitmap thumbnails for all albums
if (cur.moveToFirst()) {
String bucketName;
String imageID;
do {
imageID = cur.getString(cur.getColumnIndex(MediaStore.Images.Media._ID));
Uri uri = Uri.parse("content://media/external/images/media");
uri = Uri.withAppendedPath(uri, "" + imageID);
bucketImageList.add(uri.toString());
} while (cur.moveToNext());
cur.close();
bucketImages = bucketImageList.toArray(new String[bucketImageList.size()]);
}
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(bucketImages[2]));
該位圖不會顯示在Gallery應用程序中做出的任何效果(摩托羅拉Gallery應用程序除外)。
您的代碼應類似於以下內容:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
Uri imageUri = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
}
}
如果您需要加載非常大的圖像,則以下代碼會將其加載到圖塊中(避免大內存分配):
BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(myStream, false);
Bitmap region = decoder.decodeRegion(new Rect(10, 10, 50, 50), null);
另請參閱此答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.