【问题标题】:Howto size an image in a webview correctly如何正确调整 web 视图中的图像大小
【发布时间】:2019-04-26 08:00:51
【问题描述】:

我有:

  • 一个包含 web 视图的对话框。对话框在屏幕上可以有不同的大小。
  • 我在 webview 中有一个带有图像标签和大小属性的 html。

我想要什么:

  • 我想要一张大小为 1 厘米(厘米)见方的图片。 我怎样才能做到这一点?我意识到在我的情况下,图像标签的宽度和高度的大小不等于像素。如果我将图像的宽度设置为屏幕尺寸,那么图片显示的尺寸会比屏幕宽度大很多。

代码: 厘米像素:

    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    fDensityDpi = metrics.densityDpi;
    float pixelperinch = getfDensityDpi();
    float inchpercm = 1.0f / 2.54f;
    pixelPerCm = (int) (inchpercm * pixelperinch + 0.5);

网页视图的内容:

 "<img width=\"" + pixelPerCm + "\" height=\"" + pixelPerCm + "\"  src=\"" + imagePath + "\" " + sStyle + ">"

设备上的图片尺寸不是预期的 1 厘米。

有人可以帮我如何在每台设备上将 web 视图中的图像大小精确到 1 厘米吗?

【问题讨论】:

标签: android webview


【解决方案1】:

您需要在网页中设置固定图像的高度和宽度。

1 cm = 38px 差不多

1cm 可以使用 38px。

【讨论】:

  • 错了。每台设备都有不同的密度,因此每台设备上的 38px 物理尺寸都不同。
【解决方案2】:

对于 webview,您可以使用 dpTopx 方法

   public static int dpToPx(int dp) {
        return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
    }

    public static int pxToDp(int px) {
        return (int) (px / Resources.getSystem().getDisplayMetrics().density);
    }

【讨论】:

  • 我的问题不是如何获取大小,而是如何将大小应用于 webview 中的 html。你可以看到,我已经有了正确的尺寸。
猜你喜欢
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多