WebView详细使用一(带进度的WebView)

一、总体概述
  1. 带进度的WebView(一)
  2. 腾讯X5内核的集成(二)
  3. WebView初始化和Activity的封装(三)
  4. WebView和原生的交互接口定义和数据封装(四)
    分四部来编写。
二、带进度WebView的分析
  1. 顶部是进度条(ProgressBar),下面是WebView
  2. 用LinearLayout将ProgressBar、WebView添加进去即可
  3. 自定义进度条的样式
三、自定义组合控件,带进度的WebView
/**
 * ================================================================
 * 

* 作者:刘付文 *

*

* 描述:带进度条的WebView和一些初始化操作 * ================================================================ */ public class ProgressWebView extends LinearLayout { private ProgressBar progressbar; private WebView mWebView; public ProgressWebView(Context context) { this(context, null); } public ProgressWebView(Context context, AttributeSet attrs) { super(context, attrs); addViews(context); } /** * 1. 添加进度条 * 2. WebView */ private void addViews(Context context) { removeAllViews(); setOrientation(VERTICAL); // 1.添加进度条 progressbar = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal); progressbar.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, dip2px(2))); Drawable drawable = context.getResources().getDrawable(R.drawable.progress_bar_states); progressbar.setProgressDrawable(drawable); addView(progressbar); // 2.添加WebView,context.getApplicationContext()可以防止内存泄漏 mWebView = new WebView(context.getApplicationContext()); mWebView.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); addView(mWebView); } /** * dip----to---px */ public int dip2px(int dip) { float density = getResources().getDisplayMetrics().density; return (int) (dip * density + 0.5); } public WebView getWebView() { return mWebView; } public ProgressBar getProgressbar() { return progressbar; } }

四、自定义进度条的样式(progress_bar_states)


    
    
        
            

            
        
    
    
    
        
            
                

                
            
        
    

每个APP的进度颜色都不一样,自己去改就好。
一个简单带进度条的WebView搞定。

你可能感兴趣的:(WebView详细使用一(带进度的WebView))