是否有API会返回给定文件扩展名的图标?
我需要在子视图中显示文件列表。 (这些是文件"附加"到记录,所以简单地嵌入文件浏览器并转储目录是不够的。)
我注意到内置的文件管理器(华硕)和第三方根浏览器似乎都显示了相同的图标类型,基于他们的"分组" (文字,图像......)。
例如,所有文本文件(.txt,.doc)都具有相同的图标,并且所有图像文件(.jpg,.png,...)都具有相同的图标(例外情况是ES文件资源管理器,具有.txt和.doc文件的特定图标。)
我还观察到他们每个人都有自己的图标集(文件资源管理器中的文字和图片图标与Root Explorer不同)。
因此,Android中的常见/最佳做法似乎是按内容显示文件,而不是打开它的关联程序(即使我指定默认应用程序打开某种文件类型,图标也没有&#39 ; t似乎改变了。)
为了避免重新发明轮子,我想简单地利用操作系统提供的API,当提供文件扩展名时会返回一个图标?
这样的API方法可以为需要执行此操作的任何其他应用程序提供一致性(通过使用统一的图标),并且还可以生成未来的校对代码,例如"密度配置文件"在某些时候被放弃(med,lg,xl,xxl,xxxl,...)。我想它还需要返回一个为当前屏幕密度格式化的图标。
注意:我宁愿不直接引用图标(即SELECT om.member_id
FROM org_member om
left join org_group_member ogm
on om.member_id = ogm.id_menber
WHERE om.org_id = 1
and ogm.is_pending = 'N'
ORDER BY om.member_id
),以防它们的路径中断,但如果这是唯一的实现途径这就是它(也许我必须写一个包装器来抽象出来)。
答案 0 :(得分:2)
是否有API会返回给定文件扩展名的图标?
不直接,因为Android不处理文件扩展名。
欢迎您:
MimeTypeMap
尝试派生文件扩展名的MIME类型Intent
PackageManager
和resolveActivity()
或queryIntentActivities()
了解哪些活动(或多项活动)会处理此问题Intent
PackageManager
获取与活动相关联的图标 IOW,你做主屏幕发射器的工作,除了你不会使用LAUNCHER
Intent
。