在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android  

中提供了其很好的支持,下面是一个例子程序,先帖: 

<?xml version="1.0" encoding="utf-8"?>  

主程序:  

public class WebPageLoader extends Activity  {      final Activity activity = this;     @Override     public void onCreate(Bundle savedInstanceState)     {      super.onCreate(savedInstanceState);      this.getWindow().requestFeature(Window.FEATURE_PROGRESS);     setContentView(R.layout.main);    WebView webView = (WebView) findViewById(R.id.webView);     webView.getSettings().setJavaScriptEnabled(true);  webView.getSettings().setSupportZoom(true);  webView.setWebChromeClient(new WebChromeClient()   {            public void onProgressChanged(WebView view, int progress)     {              activity.setTitle("Loading...");         activity.setProgress(progress * 100);       if(progress == 100)              activity.setTitle(R.string.app_name);         }        }  );        webView.setWebViewClient(new WebViewClient() {              public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)     {                 // Handle the error           }                       public boolean shouldOverrideUrlLoading(WebView view, String url)   {                view.loadUrl(url);     return true;         }        });    webView.loadUrl("http://www.sohu.com");    }   }

要注意的是,其中的webView的一系列用法,比如 webView.getSettings().setJavaScriptEnabled(true);设置可以使用javscript;  

webView.getSettings().setJavaScriptEnabled(true);   webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);   webView.setHorizontalScrollBarEnabled(false);   webView.getSettings().setSupportZoom(true);   webView.getSettings().setBuiltInZoomControls(true);   webView.setInitialScale(70);   webView.setHorizontalScrollbarOverlay(true);  

等等,具体参考API  
而进度条的使用是在new出一个setWebChromeClient后,可以在内部类中写  
onProgressChanged事件  

在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括:

onLoadResource onPageStart onPageFinish onReceiveError onReceivedHttpAuthRequest 

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 :

onCloseWindow(关闭WebView) onCreateWindow() onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出) onJsPrompt onJsConfirm onProgressChanged onReceivedIcon onReceivedTitle

更多的时候,你可以这样

WebView webView;  webView= (WebView) findViewById(R.id.webview); webView.setWebChromeClient(new WebChromeClient());  webView.setWebViewClient(new WebViewClient());  webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(url);  

这样你的WebView理论上就能有大部分需要实现的特色了
当然,有些更精彩的内容还是需要你自己添加的


更多相关文章

  1. Android游戏框架AndEngine使用入门
  2. Android经典例子收藏笔记1
  3. Android(安卓)dispatchTouchEvent
  4. Android(安卓)Activity加载Fragment的一般简易方法
  5. Android中RecyclerView的长按
  6. WebView常见问题
  7. Android(安卓)监听锁屏/开屏事件
  8. android 加载外部矢量图SVG
  9. Android(安卓)EventBus 架构设计

随机推荐

  1. Android 简单的图片查看器源码实现
  2. Android(安卓)小項目之---标准体重测量仪
  3. android 阻塞 对话框 完全阻塞 停止主进
  4. Android 自动接听电话
  5. Android(安卓)Studio之Gradle多渠道打包
  6. Android NDK开发之旅16--NDK--文件拆分与
  7. Android的单线程模型
  8. Android 调用系统播放器,调用系统Camera
  9. Android实现双屏异显
  10. 制作不暴露源码的Android(安卓)Library P