【问题标题】:How to specify image size in webview css using dip?如何使用 dip 在 webview css 中指定图像大小?
【发布时间】:2011-10-02 21:20:14
【问题描述】:

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

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

为了使这个设备独立,我想使用 dip 而不是 px 来测量宽度和高度。我无法弄清楚(也找不到)如何将 dip 指定为 css 定义中的一个单位。我试过“dp”和“dip”,但都没有奏效。这个可以吗?

我知道我可以通过 类型的选择器选择多个版本的 CSS 文件,但这意味着我将拥有重复的 CSS 文件,只是为了调整大小图像根据不同的设备密度。可行,但我希望能够在 CSS 文件中指定 dip 并让 WebView 为我完成工作。

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

(我的图像旨在允许在当前支持的屏幕密度范围内调整大小而不会出现伪影)

【问题讨论】:

    标签: android css webview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      CSS 中可用的单位在这里:

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

      没有dp或dip,所以我不知道你是怎么想到这样一个单位存在的。

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

      这是理论。

      实践是您可能希望动态生成 CSS 以支持此类功能。

      【讨论】:

      • 谢谢。该理论不适用于我拥有的两个物理设备 - 摩托罗拉 Droid 2 和 LG VM670。目前正在考虑在 body 标签中设置字体大小以定义 1 em 的基线,然后在 CSS 的其余部分中使用 em 值(如 dips),然后根据物理设备动态确定 body 标签字体大小的正确值。我希望 Android 中有一些我不知道但可以利用的(甚至不是标准的)扩展。
      • 作为这篇文章的附录,请阅读来自 quirksmode 的 this article。将设备像素缩放为 CSS 像素应该是用户代理的职责。 (只是希望 CSS 规范会称它为不同于“像素”的东西,这很令人困惑。)
      猜你喜欢
      • 2013-04-05
      • 2014-09-04
      • 2021-12-03
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2021-07-25
      • 2014-05-24
      相关资源
      最近更新 更多