首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过MediaScannerConnectionClient获取图片的内容方案Uri

通过MediaScannerConnectionClient获取图片的内容方案Uri
EN

Stack Overflow用户
提问于 2012-08-24 20:08:53
回答 1查看 496关注 0票数 1

我有一些图片存储在外部SD卡中,我想在GridView中显示他们的缩略图。我知道媒体扫描仪创建了缩略图,因为我可以使用标准画廊应用程序浏览我的图片文件夹,但我不知道这些缩略图的位置,所以我不知道如何将它们添加到我的GridView中。

我正在尝试使用以下命令获取缩略图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), Long.parseLong(_imageUri.getLastPathSegment()), type, null)

_imageUri必须是内容模式Uri,所以我的问题是找到一种方法将图像的文件模式Uri转换为内容模式Uri。不幸的是,我不知道该怎么做。我见过很多推荐使用Uri.parse()的SO线程,但它就是不起作用,所以我在寻找一个不同的解决方案。

我目前的方法是使用媒体扫描器扫描单个文件,并尝试从onScanCompleted回调中检索内容Uri。代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SimpleMediaScanner implements MediaScannerConnectionClient {
    private MediaScannerConnection mMSC;
    private File mFile;
    private MyAdapter mAdapter;

    public SimpleMediaScanner(Context c, File f, MyAdapter a) {
        mAdapter = a;
        mFile = f;
        mMSC = new MediaScannerConnection(c, this);
        mMSC.connect();
    }

    @Override
    public void onMediaScannerConnected() {
        mMSC.scanFile(mFile.getAbsolutePath(), null);
    }

    @Override
    public void onScanCompleted(String path, Uri uri) {
        // Store the content scheme Uri of the scanned file
        // in a public field of the adapter
        mAdapter.mThumbUri = uri;
        mMSC.disconnect();
    }
}

我从扩展的SimplecursorAdapter实例化了这个类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SimpleMediaScanner sms = new SimpleMediaScanner(mContext, new File(filepath), this);

遗憾的是,返回的mAdapter.mThumbUri值始终为null。谁能告诉我我做错了什么?提亚

EN

回答 1

Stack Overflow用户

发布于 2012-08-26 08:33:48

您尝试过MediaStorage.Images.Thumbnails类吗?它提供了两个静态getThumbnail(...)方法,可以满足您的需求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12115971

复制
相关文章
python dropwhile跳过开头的几行
from itertools import dropwhile with open('/etc/passwd') as f: ... for line in dropwhile(lambda line: line.startswith('#'), f): ... print(line, end='') from itertools import islice items = ['a', 'b', 'c', 1, 4, 10, 15] for x in
用户5760343
2019/09/30
1.7K0
pythoncharm注释快捷键_多行注释以什么开头
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174489.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
1.6K0
pythoncharm注释快捷键_多行注释以什么开头
为什么浏览器的用户代理字符串以 Mozilla 开头?
为什么浏览器的用户代理字符串(user-agent string)以 Mozilla 开头? 最早流行的浏览器是 NCSA Mosaic,它称自己为 NCSA_Mosaic/2.0 (Windows
前端教程
2018/03/29
1.4K0
为什么浏览器的用户代理字符串以 Mozilla 开头?
在文件每一行开头增加字符串
首先,使用vim 打开某txt文件,输入冒号,并输入%s/^/,之后输入要添加的字符串即可
DoubleV
2022/03/25
1.1K0
python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解
1、你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme 等等。检 查 字 符 串 开 头 或 结 尾 的 一 个 简 单 方 法 是 使 用str.startswith() 或 者 是str.endswith()方法。比如:
全栈程序员站长
2022/09/13
2.8K0
原理分析:使用 dd 跳过开头若干字节快速拷贝文件
  计算机中每一次向硬盘读取和写入数据,无论读多小的数据量,都至少需要花一段常数时间(称为overhead)。 (就像你去超市买鸡蛋一样,无论你一次只买一个,还是一千个,你都至少要花从家走到超市,再从超市走回家的时间。)
Miigon
2022/10/27
1.2K0
ES6字符串模板多行清除行头空格制表符
对于多行文本我肯定优先考虑用 ES6字符串模板来实现,直接使用的效果并不是很符合想要的。
CRPER
2019/11/29
1K0
php用空格分隔字符串,分割字符串空格[通俗易懂]
String[] data = s.split(“@”); // 以@分割字符串,获得@后的值。
全栈程序员站长
2022/11/16
6.3K0
Java 多行字符串
在本文中,我们来说说 Java 的多行字符串(multiline strings )。
HoneyMoose
2022/08/08
4.2K0
Java 多行字符串
python 字符串开头结尾匹配
filename = 'spam.txt' filename.endswith('.txt') True filename.startswith('file:') False url = 'http://www.python.org' url.startswith('http:') True 或者正则 import re url = 'http://www.python.org' re.match('http:|https:|ftp:', url) <_sre.SRE_Mat
用户5760343
2022/01/10
1.7K0
php删除字符串的空格
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105882.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
3.6K0
字符串:替换空格
示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy."
代码随想录
2020/09/10
4.6K0
字符串:替换空格
带空格的字符串反转
就是输入一段文本,然后让你实现字符串反转。 肺炎严重,假期延长,闲的不得不自主学习,然后就日常刷水题。 第一次的方法,简单易懂,就是时间超限了。TLIM #include<bits/stdc++.h> using namespace std; stack<string> st; int main(){ string s; cin>>s; reverse(s.begin(),s.end()); st.push(s); while(getchar() != '\n'){ cin>>s; re
杨鹏伟
2020/09/11
1.3K0
JS去除字符串的空格
JS去除字符串前后空格 //去前后空格 //var LO = data.replace(/(^\s*)|(\s*$)/g, ""); //var LA = data.replace(/(^\s*)|(\s*$)/g, ""); JS去除字符串所有空格 //直接去除所有的空格 var LL = data.replace(/\s+/g,""); 在Kettle做数据清洗中用到的: //Script here //去前后空格 //var LO = LONGITUDE.replace(/(^\s*)|(\s*
手撕代码八百里
2020/07/28
8K0
python 匹配字符串开头和结尾
1.你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme 等等。检 查 字 符 串 开 头 或 结 尾 的 一 个 简 单 方 法 是 使 用str.startswith() 或 者 是str.endswith()方法。比如:
全栈程序员站长
2022/09/16
1.3K0
算法-字符串替换空格
chaibubble
2018/01/02
2.4K0
算法-字符串替换空格
android空格字符串_v1d空格复制
&#160; == &nbsp; == &#xA0; == no-break space (普通的英文半角空格但不换行)
全栈程序员站长
2022/09/30
8240
关于字符串切割空格
注意: 不要在split方法中写" ", 这样只能匹配到一个空格 String s = "hello world you"; String[] split = s.split("\\s+"); for (String s1 : split) { System.out.println(s1); }
乐心湖
2020/07/31
1.1K0
python 字符串去空格
1、lstrip:删除左边的空格 这个字符串方法,会删除字符串s开始位置前的空格。
全栈程序员站长
2022/09/03
2.6K0
Python字符串开头或末尾匹配
当你需要通过指定的文本模式去检查字符串的开头或者结尾的时候,比如文件名后缀,URL Scheme等等。
后场技术
2020/09/03
1.8K0

相似问题

在多行开头添加空格

443

sscanf跳过开头的空格

10

匹配以空格开头的多行

12

删除多行字符串变量中每一行开头的空格。

55

字符串开头的跳过模式

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文