我根据设备屏幕大小try 了以下方法来适应网页.

mWebview.setInitialScale(30);

然后设置元数据视口

<meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;"/>
<meta name="viewport" content="width=device-width, target-densityDpi=medium-dpi"/>

但是什么都不起作用,网页没有固定到设备的屏幕大小.

有人能告诉我怎么弄到这个吗?

推荐答案

您必须计算需要手动使用的比例,而不是设置为30.

private int getScale(){
    Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    int width = display.getWidth(); 
    Double val = new Double(width)/new Double(PIC_WIDTH);
    val = val * 100d;
    return val.intValue();
}

然后使用

WebView web = new WebView(this);
web.setPadding(0, 0, 0, 0);
web.setInitialScale(getScale());

Android相关问答推荐

ava.lang. ClassNotFound异常:没有找到类com.example.myapp.MyApp"

在Android Studio Iguana 2023.2.1中,哪里可以找到能量分析器?

Android Bundle getSerializable(String?):'可序列化?&# 39、被抛弃了在Java中被弃用

对支持哪些数据存储区方法感到困惑

如何在Android Studio的LinearLayout中禁用阴影

为什么我有多个Player实例?

在Jetpack Compose中实现焦点突出的最佳方式?

在本地通知中设置自定义声音

Spinner - onItemLongClick 从未执行

如何在每次显示可组合项时执行代码(并且只执行一次)

Jetpack Compose 如何使一个项目相对于另一个项目垂直居中

从 HiltViewModel @Injection 访问 Application()

在段的中心绘制饼图(甜甜圈图)的图例

如何在一个活动中预加载图像然后在另一个活动中加载它们?

如何以编程方式通过 whatsapp android 共享图像和文本

获取模板向导配方类 Intellij 中的应用程序包名称

记住或不记得derivedStateOf

Android 12 通过包管理器中断 APK 安装?

使 Compose LazyColumn 的最后一项填满屏幕的其余部分

Android Studio (Kotlin):无法启动活动