首页 > Web开发 > 详细

webview 不能全屏 底部 有空白部

时间:2014-02-10 20:33:23      阅读:868      评论:0      收藏:0      [点我收藏+]

今天遇到一个 奇怪的问题:

一个webview 上面直接 loadUrl  ,竟然发现 webview下面 多出一块空白区域,如下图:

bubuko.com,布布扣

百思不得其解。

查了一些资料,也没找到方法。后来发现 在配置文件里面 有这么一句

  <supports-screens
        android:anyDensity="false"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />


里面的 anyDensity=false, 意思不支持所有的 密度。。

难道是密度不匹配导致webview 的尺寸差别??


查看得知:


android屏幕适配

1、配置android应用程序适配在不同的手机上,需要在AndroidManifest.xml文件的manifest标签中添加子元素:

1
2
3
4
5
6
7
8
9
10
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    ...
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true" >
    </supports-screens>
</manifest>

以上是为我们的屏幕设置多分辨率支持

android:anyDensity="true"当值为true时,当应用程序安装在不同分辨率的手机上时,程序会分别加载hdpi,mdpi,ldpi文件夹中的资源。相反,如果值设置为false,即使我们在hdpi,mdpi,ldpi文件夹下放有相同资源,应用也不会自动地去相应文件夹下寻找资源,这种情况都是出现在高分辨率,以及低分辨率的手机上,比如说一部240×320像素的手机,如果设置android:anyDensity="false"Android系统会将240 x 320(低分辨率)转换为 320×480(中分辨率),这样的话,应用就会在低分辨率手机上加载mdpi文件中的资源。

2、android2.0开始之后drawable文件被三个文件夹drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹所取代,我们只要设置android:anyDensity="false"应用则会将高、低分辨率转变成中分辨率,从而去加载mdpi中的资源。

1)android:anyDensity="true"系统会依据屏幕密度,自动去找对应的文件夹;

2)android:anyDensity="false",如果drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹中放有同一张图片的不同分辨率时,那么系统会去加载drawable_mdpi文件夹中的资源如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有对应的图片资源,那么系统会加载drawable-mdpi文件夹中的资源


3、有时会根据需要在代码中动态地设置某个值,比如地图,地图的pin和地图的地址提示框的相对偏移量在不同分辨率的手机上是不同的。这时候可以通过以下方法求出屏幕分辨率:

DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);

int densityDpi = metric.densityDpi;  // 屏幕分辨率DPI120 / 160 / 240

然后可以在代码中为这几种密度分别设置偏移量。不过,最好是在xml文件中对不同分辨率的手机进行分别设置。

地图的偏移量可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置

<dimen name="bitmap_common_topoffset">40dp</dimen>

<dimen name="bitmap_common_bottomoffset">-14dp</dimen>

这里的负数是完全起作用的,系统会认为它是一个负值。

原来是密度设置值导致的 

  <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />



这样一来就ok 了

如下图:

bubuko.com,布布扣







webview 不能全屏 底部 有空白部

原文:http://blog.csdn.net/zlj_fly/article/details/19045017

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!