<application        android:icon="@drawable/hunqin"        android:label="@string/app_name"        android:theme="@android:style/Theme.Light" >

主题 android:theme------->必须不能使Theme.Light.NoTitleBar

否则不起作用

requestWindowFeature(Window.FEATURE_PROGRESS);        setContentView(R.layout.progressbar);        setProgressBarVisibility(true);

    <application        android:icon="@drawable/hunqin"        android:label="@string/app_name"        android:theme="@android:style/Theme.Light.NoTitleBar" >

public class ProgressTest extends Activity{final Activity context = this;@Overridepublic void onCreate(Bundle b) {   super.onCreate(b);   requestWindowFeature(Window.FEATURE_PROGRESS);//让进度条显示在标题栏上   setContentView(R.layout.main);   WebView webview = (WebView)findViewById(R.id.webview);   webview.setWebChromeClient(new WebChromeClient() {              public void onProgressChanged(WebView view, int progress) {                //Activity和Webview根据加载程度决定进度条的进度大小               //当加载到100%的时候 进度条自动消失                context.setProgress(progress * 100);       }    });   webview.loadUrl(url);}

http://www.cnblogs.com/over140/archive/2013/03/07/2947721.html

前言

如果不使用系统自带的TitleBar(即Activity被设置@android:style/Theme.NoTitleBar),那就需要自己来写进度条了,这里封装了一个自定义控件和加载网页的公共Activity,方便使用。

声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com

    农民伯伯: http://over140.cnblogs.com

正文

一、截图

二、自定义控件

/**
*带进度条的WebView
*@author农民伯伯
*@seehttp://www.cnblogs.com/over140/archive/2013/03/07/2947721.html
*
*/
@SuppressWarnings("deprecation")
publicclassProgressWebViewextendsWebView{

privateProgressBarprogressbar;

publicProgressWebView(Contextcontext,AttributeSetattrs){
super(context,attrs);
progressbar=newProgressBar(context,null,android.R.attr.progressBarStyleHorizontal);
progressbar.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,3,0,0));
addView(progressbar);
//setWebViewClient(newWebViewClient(){});
setWebChromeClient(newWebChromeClient());
}

publicclassWebChromeClientextendsandroid.webkit.WebChromeClient{
@Override
publicvoidonProgressChanged(WebViewview,intnewProgress){
if(newProgress==100){
progressbar.setVisibility(GONE);
}else{
if(progressbar.getVisibility()==GONE)
progressbar.setVisibility(VISIBLE);
progressbar.setProgress(newProgress);
}
super.onProgressChanged(view,newProgress);
}

}

@Override
protectedvoidonScrollChanged(intl,intt,intoldl,intoldt){
LayoutParamslp=(LayoutParams)progressbar.getLayoutParams();
lp.x=l;
lp.y=t;
progressbar.setLayoutParams(lp);
super.onScrollChanged(l,t,oldl,oldt);
}
}

三、加载网页的公共Activity

/**
*加载网页的Activity
*
*@author农民伯伯
*@seehttp://www.cnblogs.com/over140/archive/2013/03/07/2947721.html
*
*/
publicclassWebActivityextendsBaseActivity{

privateProgressWebViewwebview;
privateStringurl;
privateStringname;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.commom_web);

//~~~获取参数
url=getIntent().getStringExtra("url");
name=getIntent().getStringExtra("name");

//~~~绑定控件
webview=(ProgressWebView)findViewById(R.id.webview);

//~~~设置数据
titleText.setText(name);
webview.getSettings().setJavaScriptEnabled(true);
webview.setDownloadListener(newDownloadListener(){
@Override
publicvoidonDownloadStart(Stringurl,StringuserAgent,StringcontentDisposition,Stringmimetype,longcontentLength){
if(url!=null&&url.startsWith("http://"))
startActivity(newIntent(Intent.ACTION_VIEW,Uri.parse(url)));
}
});

webview.loadUrl(url);
}
}

commom_web.xml

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<includelayout="@layout/include_title"/>

<com.nmbb.ui.widget.ProgressWebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

</LinearLayout>

四、补充说明

1、还可以再优化一下,在标题栏加一个刷新按钮。

2、如果加载的页面有需要下载文件,需要设置setDownloadListener方法,根据项目实际需求定制。

3、自定义控件是在转载的,忘记出处,感谢~~

结束

没啥高深技术,实用就行!

更多相关文章

  1. Android(安卓)相对布局
  2. RelativeLayout的常用属性
  3. Android热更新三:Android类加载机制
  4. Android(安卓)控件和其基本属性1
  5. 第5章 Android常见XML属性解析-更新中
  6. Android中Button的使用
  7. 相对布局的各个含义
  8. Android——四种基本布局
  9. TextView控件的使用(Android设置文本显示格式)

随机推荐

  1. 超简单理解Android四大组件
  2. Android性能测试工具--Oprofile
  3. android studio用Javah创建.h头文件和编
  4. Android(安卓)kotlin网络请求框架fuel(简
  5. Android中在屏幕上涂鸦的例子
  6. Android(安卓)WebView常见问题及解决方案
  7. Android(安卓)调用系统相机返回data为nul
  8. Android(安卓)解决离线路由GraphHopper
  9. Android(安卓)Studio 真机调试vivo系列手
  10. Appium环境搭建教程