抱歉,如果这是重复的问题,但我已经认真搜索了,没有发现这个问题被提出过...
所以在 Android 古老的日子里,你可以直接将以下内容添加到 WebView 的源 HTML 中:
它可以在WebView中正确显示我的.png文件。但是,现在Android支持(并且更喜欢我们使用)这些新潮的矢量可绘制图形,而Android Studio的Vector Asset Studio使从SVG文件或其他文件导入它们变得非常容易。
伟大的事情是,为了向后兼容性,在构建过程中会自动生成各种dpi /屏幕大小的.png图像以支持旧设备。因此,如果您的目标是旧设备,则存在.png图像。
如果我能够找到它们就好了。因为据我所知,使用矢量图形确实会破坏那些在WebViews中的
我考虑了几种方法来解决这个问题,但都没有奏效:
所以在 Android 古老的日子里,你可以直接将以下内容添加到 WebView 的源 HTML 中:
<img src='file:///android_res/drawable/my.png'/>
它可以在WebView中正确显示我的.png文件。但是,现在Android支持(并且更喜欢我们使用)这些新潮的矢量可绘制图形,而Android Studio的Vector Asset Studio使从SVG文件或其他文件导入它们变得非常容易。
伟大的事情是,为了向后兼容性,在构建过程中会自动生成各种dpi /屏幕大小的.png图像以支持旧设备。因此,如果您的目标是旧设备,则存在.png图像。
如果我能够找到它们就好了。因为据我所知,使用矢量图形确实会破坏那些在WebViews中的
file:///android_res/drawable/
img
链接。这很奇怪,因为正如我所说,如果只是看一下,就会有.png文件可见。我考虑了几种方法来解决这个问题,但都没有奏效:
由于.png是实时生成的并包含在.apk中,我想也许我可以直接指向其中一个生成的文件,比如
file:///android_res/drawable-hdpi-v4/my.png
。(我检查了.apk文件,其中确实有一个..) 但是没有这样的运气。图片无法显示。好吧,我想——也许有一种方法可以让WebView直接显示矢量对象。也就是说,也许WebView会识别类似于
<img src="file:///android_res/drawable/my_image.xml"/>
的东西。我的意思是,Chrome可以呈现svg,对吧?也许它也支持.xml矢量格式。但是这里也不行。(即使它能够工作,它也不太可能支持旧版本的pre-chromium webview。)我尝试的第三件事是只在
res/drawable
中包含一个xxxhdpi大小的.png,以便webview可以找到它并希望显示它。不幸的是,这也不起作用。似乎只要在/drawable
中有一个.xml矢量就足以阻止png,无论它是否在/drawable
或/drawable-xxxhdpi
目录中。
android_res
访问,如果您从file:
URL 加载页面,请确保设置setAllowFileAccessFromFileURLs
(https://dev59.com/o2865IYBdhLWcg3wBJ0q)。如果您将页面作为数据 URL 加载,请参见 https://dev59.com/aWYq5IYBdhLWcg3wkRe- - Mikhail Naganov<img src="file:///android_res/drawable/my_image.xml"/>
这种情况。你知道有什么方法可以做到吗? - fattire