在我的Android应用中,我想将图像缓存在磁盘上,然后显示在WebView
中,我需要通过某种路径或URI访问文件。 (为了使用<img src="..">
。)我发现的所有缓存实现都不提供对绝对文件路径的访问权限,而是返回InputStreams
或Bitmap
个对象。
是否可以实施ContentProvider
我可以用Bitmap
将<img src="content://my/image.png">
个对象转换为某个文件,例如WebView
中有SkipTo
?
答案 0 :(得分:3)
覆盖ContentProvider#openFile(Uri uri, String mode)
,如果您的内容是内存缓存数据而您无法返回ParcelFileDescriptor#open(File file, int mode)
,ParcelFileDescriptor#fromFd(int fd)
或ParcelFileDescriptor#fromSocket(Socket socket)
使用辅助方法ContentProvider#openFileHelper(Uri uri, String mode)
或使用ParcelFileDescriptor#createPipe()
并实现您的自定义生成器部分