android webview自适应屏幕
2015-12-10 09:10
302 查看
android方面的开发,包括手机端和机顶盒,也就是智能电视方面端的开发过程中,都不可避免的需要使用到webview,而针对于不同的分辨率而言,webview也需要做到自适应屏幕。那么,他应该怎样才能做到呢?
1.写网页的自己根据百分比,也就是针对于不同的分辨率写宽高。
也就是类似上面那句,写好伸缩比,那么在android端就可以做到自适应屏幕的。
2.手机端和电视端自己来弄.
因为网页方面有可能有会转盘,抽奖之类的不能根据百分比来放置图片的,需要定死宽高来写网页端的,如写死为1280X720的话,那么需要我们电视端或者手机端在webview中设置,或者在webview的setting中写配置,其中会碰到一些问题。
1)webview右侧空白
这个是最好解决的,这个问题主要原因是因为滚动条的问题,默认白色,所以只要在xml文件中写上
或者在Java文件中写
2)webview显示不全
这个问题就是上面说的,因为分辨率不一致,所以在你调试的设备上面有可能是全屏的,但是在别的分辨率盒子或手机上面是显示不全的,那么就要取一个全适应的方法。
第一种方法是这个:
但是以上的方法不一定都能成功,特别是第一种,有可能出现底部有白色部分出现,这个问题并不是滚动条导致的,而是因为他自动缩放而导致的。
因此有第三种折中的方法:
另外,因为webview在加载过程中是白色透明的,所以为了用户体验效果更好,我们可以默认的给一张背景图,至于背景图让UI给你。
设置背景图的方法如下:
先要在xml文件中关闭硬件加速:
当然有写网页有js的话需要加上
谢!
1.写网页的自己根据百分比,也就是针对于不同的分辨率写宽高。
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=0.3, maximum-scale=2.0, user-scalable=yes">
也就是类似上面那句,写好伸缩比,那么在android端就可以做到自适应屏幕的。
2.手机端和电视端自己来弄.
因为网页方面有可能有会转盘,抽奖之类的不能根据百分比来放置图片的,需要定死宽高来写网页端的,如写死为1280X720的话,那么需要我们电视端或者手机端在webview中设置,或者在webview的setting中写配置,其中会碰到一些问题。
1)webview右侧空白
这个是最好解决的,这个问题主要原因是因为滚动条的问题,默认白色,所以只要在xml文件中写上
android:scrollbars="none"
或者在Java文件中写
setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);即可
2)webview显示不全
这个问题就是上面说的,因为分辨率不一致,所以在你调试的设备上面有可能是全屏的,但是在别的分辨率盒子或手机上面是显示不全的,那么就要取一个全适应的方法。
第一种方法是这个:
settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true);第二个方法是
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" />
但是以上的方法不一定都能成功,特别是第一种,有可能出现底部有白色部分出现,这个问题并不是滚动条导致的,而是因为他自动缩放而导致的。
因此有第三种折中的方法:
int[] wh=Utils.getFullScreen(); int size=wh[0]*100/1280; lucky_webview.setInitialScale(size);这个是放大webview的方法,当然里面的100是自己调试出来的,size=100就是不变,150就是放大1.5倍,针对于固定大小的网页来说这个做法是可行的
另外,因为webview在加载过程中是白色透明的,所以为了用户体验效果更好,我们可以默认的给一张背景图,至于背景图让UI给你。
设置背景图的方法如下:
先要在xml文件中关闭硬件加速:
android:layerType="software"其次,需要在java文件中加上:
lucky_webview.setBackgroundColor(0); lucky_webview.setBackgroundResource(R.drawable.lucky_bg);
当然有写网页有js的话需要加上
settings.setJavaScriptEnabled(true);
谢!
相关文章推荐
- Android TabHost切换卡
- Android处理崩溃的一些实践
- Android键盘面板冲突 布局闪动处理方案
- Swift 基础语法
- C#实现带消息数的App图标
- Android listview 列表更新数据+重写adapter
- iOS中 数据持久化方式
- Android 快速开发框架xUtils
- C# 如何实现带消息数的App图标
- Android基础-1.指南说明
- Android RecyclerView使用详解三
- ObjectAnimator动画使用
- 基于AndroidPN搭建Android的推送平台 - 离线消息的推送
- Genymotion安装与集成开发指南
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能
- iOS中UIWebView与其中网页的javascript的交互
- iOS中UIWebView与其中网页的javascript的交互
- ios推送:本地通知(闹钟实现)
- Dynamically inflates UI in Android App
- Android开源项目集合