如何使WebView的内容居中?

时间:2015-05-09 16:33:45

标签: java android html css webview

我的应用程序的一部分将图像从URL加载到WebView中。 使用WebView的以下设置:

echo $_GET['error_msg'];

布局XML中的相关部分:

myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setDisplayZoomControls(false);
myWebView.getSettings().setLoadWithOverviewMode(true);
myWebView.getSettings().setUseWideViewPort(true);

这个问题,如果图像的高度比屏幕小,它看起来与WebView的顶部对齐。

是否可以将它与中心对齐?

我尝试了以下内容,但它并不是一直都在工作,不知道为什么。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent" >

    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="none" />

</RelativeLayout>

任何帮助都将不胜感激。

提前致谢。

编辑: 尝试使用CSS进行以下操作,仍然无法正常工作(图像显示,但不是垂直居中)。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent" >

    <WebView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:scrollbars="none" />

</RelativeLayout>

EDIT2: Bojan Kseneman的解决方案正在发挥作用。我正在使用

myWebView.loadDataWithBaseURL(null, "<html><head><style>img {margin-top:auto;margin-bottom:auto}</style></head><body><img src=\"" + url + "\"></body></html>", "html/css", "utf-8", null);

这就是为什么一开始似乎错了。从我的android:configChanges="orientation|keyboardHidden|screenSize 中移除了这一行修复了问题(在这种情况下,处理Manifest.xml当然是必要的。)

1 个答案:

答案 0 :(得分:1)

.element {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}