我试图让WebView具有与Android浏览器类似的行为.浏览器以试图使其宽度适合屏幕的方式打开所有页面.但是,WebView的默认行为是以100%像素比例开始,因此它会在左上角开始放大.
我花了最近几个小时试图找到一种方法让WebView将页面缩放到屏幕,就像在浏览器中一样,但我没有运气.有人找到了实现这个目标的方法吗?
我看到的是一个名为setLoadWithOverviewMode的设置,但它似乎根本没有做任何事情.我还尝试了setInitialScale,但是在不同的屏幕尺寸和网页尺寸上,它们不像浏览器缩放那样优雅.
任何人有任何线索?
谢谢
编辑:布莱恩的方法似乎适用于手机在风景但不是肖像.在肖像中,它很接近,但仍然不适合页面中的整个屏幕.我开始这个赏金,希望有一个确定的方法来获得初始缩放以使页面适合任何方向或屏幕大小的页面宽度.
我打算在webview中显示来自SD卡的图像,以便利用他内置的webview缩放功能.但是,我遇到的问题是显示大于屏幕尺寸的图像(例如1800x1200)以便最初适合屏幕,就像在ImageView中一样.我希望图像首先完整显示,并为用户提供缩放控制.我已经尝试将WRAP_CONTENT用于webview的宽度和高度,但这不起作用.有任何想法吗?以下是我正在使用的代码段:
String path = getRealPathFromURI(mUriList.get(0)); // this gets the file path
webView = (WebView) findViewById(R.id.WebView01);
WebSettings settings= webView.getSettings();
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
webView.loadUrl("file://" + path);
Run Code Online (Sandbox Code Playgroud) 我有一个建立在PrimeFaces之上的网站.我的问题是WebView上的内容和图像看起来比Chrome上的要大.我应该怎么做才能使WebView上的渲染与Chrome的渲染相同?
扩展似乎没有帮助,因为该网站具有响应式设计.我也试过wrap_content而不是fill_parent没有成功.
更新1:以下内容无效.我已将它们从下面的代码中排除,以保持最小化.
WebViewClientChromeViewClientsetLoadWithOverviewMode(true)setUseWideViewPort(true)更新2:
setInitialScale()无效.
MyActivity.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.web_engine);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
if (savedInstanceState == null) {
webView.loadUrl("http://www.primefaces.org/showcase/mobile/index.xhtml");
}
}
Run Code Online (Sandbox Code Playgroud)
main.xml中
<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:background="#ffffff"
a:orientation="vertical" >
<WebView a:id="@+id/web_engine"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
/>
Run Code Online (Sandbox Code Playgroud)

好的,我正在使用的图像名为test.png,我有一个java类(Cherry.java)和一个xml类(cherry.xml)另外我在/ res/raw文件夹中有一个名为htmltest.html的html文件.我想要做的是当用户单击上一页上的按钮然后将它们带到cherry.xml时它就是一个webview.现在在java类中,它只是打开htmltest文件并在html文件中只是一个普通的基于Web的布局.我希望在html文件中显示图像,以便在drawable文件夹中显示图像或类似的图像,而不必使用互联网.(不希望使用互联网许可).下面是我拥有的3个文件的代码.
cherry.xml
<WebView
android:id="@+id/webviewHelp"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
Run Code Online (Sandbox Code Playgroud)
Cherry.java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Cherry extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cherry);
WebView webview = (WebView) findViewById(R.id.webviewHelp);
webview.loadData(readTextFromResource(R.raw.htmltest), "text/html", "utf-8");
}
private String readTextFromResource(int resourceID)
{
InputStream raw = getResources().openRawResource(resourceID);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
int i;
try
{
i = raw.read();
while (i != -1)
{
stream.write(i); …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法让图像出现在最初适合屏幕的WebView中,而不是显示实际大小.有没有办法做到这一点?
如果:
1)我打开一个带有img标签的html文件到图像
2)我直接打开图像文件
谢谢你的帮助.