如何使用dip在webview css中指定图像大小?

时间:2011-07-11 15:00:33

标签: android css webview

我有一个通过CSS文件格式化的WebView - 我在应用程序内为此视图动态生成HTML,就像Web服务器一样。生成的HTML引用静态CSS文件进行格式化。我有一个图像格式化指令,如:

img {
    width: 20px;
    height: 20px;
}

为了使这个设备独立,我想使用dip而不是px进行宽度和高度测量。我无法弄清楚(也没有找到)如何在css定义中指定dip作为一个单元。我试过“dp”和“dip”,两者都不起作用。可以这样做吗?

我知道我可以通过<“target-densitydpi = high-dpi”>选择多个版本的CSS文件。选择器的类型,但这意味着我将有重复的CSS文件,只是为了能够根据不同的设备密度调整图像大小。可行,但我更喜欢能够在CSS文件中指定dip并让WebView为我工作。

同样可行的是在HTML头中生成内联样式表并将dip转换为特定设备的px,但这会导致CSS定义和HTML生成代码之间的耦合。可能比多个CSS文件(对于我的应用程序)更好,但是只需在CSS文件中设置dip并使用它就可以了。

(我的图片旨在允许在没有工件的情况下调整当前支持的屏幕密度范围)

2 个答案:

答案 0 :(得分:2)

CSS中有哪些单位可供选择:

http://www.w3.org/TR/css3-values/#lengths

没有dp或dip,所以我不确定你是如何知道这样一个单位存在的。

相反,CSS规范称像素大小应缩放到设备相对大小。

这是理论。

实践是你可能想要动态生成CSS来支持这样的功能。

答案 1 :(得分:1)

dp实际上是/ 160,因此您可以指定长度单位的所有尺寸,例如英寸或毫米。当然,假设比例。

但不幸的是,css中的绝对尺寸与物理测量不匹配,我刚检查过它。 :(