`
univasity
  • 浏览: 811522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[问题解决]WebView显示的网页在大分辨率屏下被放大 - 密度惹的祸

 
阅读更多

 

例如适合800px宽度的页面,如果通过WebView在1024px的屏幕宽度下显示时,内容(图片)会被放大,整体页面会超出屏幕。

试了将WebView的settings中的缩放都关闭了也不行。

后来发现了WebSettings.ZoomDensity这个设置,并在文档中找到了以下说明:
Enum for specifying the WebView's desired density. FAR makes 100% looking like in 240dpi MEDIUM makes 100% looking like in 160dpi CLOSE makes 100% looking like in 120dpi

这样就能很好的说明以上问题的原因了,又是密度惹的祸...

默认WebView的ZoomDensity是MEDIUM,对应160dpi。而我之前800px宽度的屏幕对应的是60dpi,1024px宽度的屏幕对应的是240dpi。所以,页面在高分辨率的屏幕上被放大了1.5倍。这个和图片自缩放的机制是一样的。

于是,只要通过当前屏幕的密度,动态设置该属性就能适应不同屏幕(当然,默认你的页面是针对160dpi的密度大小设计的):

int   screenDensity   = getResources().getDisplayMetrics(). densityDpi ;
WebSettings.ZoomDensity   zoomDensity   = WebSettings.ZoomDensity. MEDIUM ;
switch (screenDensity){
case   DisplayMetrics.DENSITY_LOW :
    zoomDensity = WebSettings.ZoomDensity.CLOSE;
      break ;
case   DisplayMetrics.DENSITY_MEDIUM :
    zoomDensity = WebSettings.ZoomDensity.MEDIUM;
      break ;
case   DisplayMetrics.DENSITY_HIGH :
    zoomDensity = WebSettings.ZoomDensity.FAR;
      break ;
}
webview .getSettings().setDefaultZoom(zoomDensity) ;

即可解决。

 

分享到:
评论

相关推荐

    webview网站全屏显示

    "webview网站全屏显示"这个项目显然关注的是如何利用WebView实现网页的全屏显示,并确保页面能够根据手机屏幕尺寸自适应调整,同时避免在加载网页时跳转到系统浏览器。 1. **WebView基本使用**: - WebView是...

    Android中WebView加载的网页被放大的解决办法

    总之,要解决Android WebView加载网页被放大的问题,关键在于正确配置WebSettings,尤其是`ZoomDensity`属性。通过动态调整这个设置,我们可以使网页在不同密度的设备上呈现理想的显示效果,从而提升用户体验。同时...

    android Webview读取网页里的所有图片,并实现点击放大

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。当涉及到用户界面交互,特别是展示包含图片的网页时,我们可能需要实现一些额外的功能,比如点击图片放大查看。本篇文章...

    Android中实现WebView点击图片放大显示

    在某些场景下,用户可能需要查看WebView加载的网页中的图片,此时,提供一个点击图片放大显示的功能会大大提升用户体验。本文将详细介绍如何在Android中实现这一功能。 首先,我们需要了解WebView的基本使用。...

    android用WebView显示包含文字和图片的本地网页(支持放大缩小)

    在android的实际开发中有时候我们需要将文字和图片一起显示,可以用TextView和ImageView的组合来实现,其实用网页显示更容易,本文介绍android显示含有图片和文字的本地网页html,hml的方法,并支持放大缩小。

    Webview播放网络视频并实现全屏显示,解决声音问题

    本教程将详细讲解如何使用WebView播放网络视频,并实现全屏显示,同时解决在5.0及以上系统上的声音问题以及全屏时的声音调整。 ### 1. WebView基础知识 首先,我们需要了解WebView的基本用法。在Android布局XML...

    Android webview加载网页.zip

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,无需跳转到外部浏览器。这个“Android webview加载网页.zip”文件可能包含了一个示例项目或者教程,帮助开发者理解...

    Android中使用WebView显示网页

    本文将深入探讨如何在Android中使用WebView显示网页,并涉及如何打包本地网页、加载Web页面、设置启用JavaScript以及使用缓存等关键知识点。 1. **使用WebView组件** Android中的WebView是Android SDK提供的一种...

    Android中WebView播放网上视频,横竖屏切换

    在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现与网页的交互。在一些场景下,我们可能需要在WebView中播放网络视频,例如YouTube、Vimeo等在线视频服务。然而,...

    kotlin compose 实现 webView 加载视频,支持Webview 全屏及退出全屏

    kotlin compose 实现 webView 加载视频,支持Webview 全屏及退出全屏; 资料是主要代码,配置操作:1. AndroidManifest 配置 android:hardwareAccelerated ="true" 2. 支持横竖屏旋转 android:windowSoftInputMode=...

    WebView视频全屏显示demo

    在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内部嵌入网页内容,实现类似浏览器的功能。本文将深入探讨如何实现“WebView视频全屏显示”这一功能,包括视频的显示、全屏切换、设置视频...

    安卓浏览器WebViewJSHTML5相关-Webview在线播放网络视频并实现全屏功能并且适用于5.0以上系统解决退出声音问题全屏声音调整问题.rar

    在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内部加载和显示网页内容。这个压缩包文件的内容主要涉及到如何使用WebView来在线播放网络视频,并实现全屏功能,同时解决在Android 5.0及以上...

    替换WebView加载网页失败

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,实现与网页的交互。然而,有时我们可能会遇到“替换WebView加载网页失败”的问题,这通常是由于多种原因引起的。以下是一些...

    详解android 用webview加载网页(https和http)

    然而,在加载 HTTPS 和 HTTP 网页时,WebView 可能会出现一些问题,本文将详细介绍这两个错误的解决方法。 错误一:加载 HTTPS 请求的网页时,WebView 变成空白页 在 Android 中,当 WebView 加载 HTTPS 请求的...

    cocos-win32下实现WebView网页内嵌

    在Cocos2d-x开发中,将网页内嵌到游戏或应用中是一项常见的需求,这样可以方便地展示HTML内容,实现动态更新或者交互。本文将详细介绍如何在Win32...在实际开发中,还需要注意线程安全、性能优化以及错误处理等问题。

    Android webview 内存泄露的解决方法

    最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递getApplicationContext。 1.避免在xml直接写webview...

    android webview播放网页视频

    这个方法会在Webview需要显示全屏视频时被调用。下面是一个简单的WebChromeClient实现: ```java webView.setWebChromeClient(new WebChromeClient() { @Override public void onShowCustomView(View view, ...

    android java 通用开发 自适应密度 webview

    8. **自适应密度**:在Android开发中,为了确保应用在不同屏幕分辨率和像素密度的设备上都有良好的显示效果,需要实现自适应密度的策略。这包括使用dp和sp单位代替px,以及适配不同的屏幕尺寸和比例。 9. **WebView...

    android 使用WebView浏览网页

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,实现与网页的交互。这篇博文“android 使用WebView浏览网页”可能是关于如何在Android应用中集成和使用WebView来展示网页内容...

Global site tag (gtag.js) - Google Analytics