gpt4 book ai didi

android - 如何将 Picasso Library 与 MediaStore 一起使用

转载 作者:行者123 更新时间:2023-11-29 17:47:23 24 4
gpt4 key购买 nike

我想使用 MediaStore.Images.Media 获取画廊存储图像的 uri,并使用 Picasso 库加载图像。我使用以下代码完成了此操作。但它既不会给出任何错误,也不会在 ImageView (存在于 ListView 中)中显示图像。

        Picasso.with(getActivity()).load(MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
.resize(300, 300).centerInside().into(holder.imageView);

有人帮帮我....

最佳答案

您实际上需要在数据库中查询 MediaStore 中的图像 uri。

例如,从 MediaStore 获取第一张图片并加载它

        String[] projection = {
MediaStore.Images.Media._ID
};
// Create the cursor pointing to the SDCard
mCursor = getActivity().managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, // Which columns to return
null, // Return all rows
null,
MediaStore.Images.Media.DATE_ADDED);
getActivity().startManagingCursor(mCursor);

// Get the column index of the Thumbnails Image ID
if (mCursor != null) {
columnIndex = mCursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);

int size = mCursor.getCount();
// If size is 0, there are no images on the SD Card.
if (size == 0) {
return;
}

mCursor.moveToPosition(0);
int imageID = mCursor.getInt(columnIndex);
Uri imageUri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, String.valueOf(imageID));

Picasso.with(getActivity()).load(imageUri)
.resize(300, 300).centerInside().into(holder.imageView);
}

另外,因为这是一个数据库查询,您应该可以在 AsyncTask 中执行此操作,并将 URI 返回到 postExecute 并将其加载到 Picasso 中,因为数据库读取在某些设备上可能会很慢。

关于android - 如何将 Picasso Library 与 MediaStore 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com