Android 加载网页进度条

SunShineGO 贡献于2014-01-16

作者 微软用户  创建于2012-07-05 05:27:00   修改者微软用户  修改于2012-07-05 05:27:00字数2817

文档摘要:实现的效果:标题栏显示网页标题并且滚动,并且用进度条显示网页的加载进度(重新自定义标题栏,lephone修改后的都带有一个返回按钮,并且标题文本和进度条是Frame布局的不怎么好看)。
关键词:

实现的效果:标题栏显示网页标题并且滚动,并且用进度条显示网页的加载进度(重新自定义标题栏,lephone修改后的都带有一个返回按钮,并且标题文本和进度条是Frame布局的不怎么好看)。   1、首先定义一个RelativeLayout布局文件 broser_custom_title.xml (AlwaysMarqueeTextView这个类重写了TextView,实现一个跑马灯的效果,网上能够找到) Java代码: XML/HTML代码 1. < ?xml version="1.0" encoding="utf-8"?> 2. < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" 3. android:layout_height="fill_parent"> 4. < com.android.CustomTitleTest 5. android:id="@+id/tvtitle" 6. android:layout_width="fill_parent" 7. android:layout_height="wrap_content" 8. android:focusableInTouchMode="true" 9. android:singleLine="true" 10. android:ellipsize="marquee" 11. android:focusable="false" 12. android:marqueeRepeatLimit="marquee_forever" 13. android:textSize="20sp" android:layout_centerVertical="true"/> 14. < ProgressBar 15. android:id="@+id/pb" 16. android:layout_width="fill_parent" 17. android:layout_height="wrap_content" 18. style="?android:attr/progressBarStyleHorizontal" 19. android:visibility="gone" 20. android:layout_alignParentBottom="true" > 21. < /ProgressBar> 22. 23. < /RelativeLayout> 复制代码 2、继承WebChromeClient,重写onProgressChanged和onReceivedTitle事件(进度条加载完成后使用动画渐退) java代码: 1. public class MyWebChromeClient extends WebChromeClient { 2. private Activity activity; 3. private ProgressBar pb; 4. private TextView tvtitle; 5. public MyWebChromeClient(Activity activity) { 6. this.activity = activity; 7. } 8. 复制代码 Java代码: 1. Animation animation; 2. 3. @Override 4. public void onProgressChanged(WebView view, int newProgress) { 5. pb=(ProgressBar)activity.findViewById(R.id.pb); 6. pb.setMax(100); 7. if(newProgress<100){ 8. if(pb.getVisibility()==View.GONE) pb.setVisibility(View.VISIBLE); 9. pb.setProgress(newProgress); 10. }else{ 11. pb.setProgress(100); 12. animation=AnimationUtils.loadAnimation(activity, R.anim.animation); 13. // 运行动画 14. animation pb.startAnimation(animation); 15. // 将 spinner 的可见性设置为不可见状态 16. pb.setVisibility(View.INVISIBLE); 17. } 18. super.onProgressChanged(view, newProgress); 19. } 20. @Override 21. public void onReceivedTitle(WebView view, String title) { 22. tvtitle=(TextView)activity.findViewById(R.id.tvtitle); 23. tvtitle.setText(title); super.onReceivedTitle(view, title); 24. 25. } 26. 27. } 复制代码 3、进度条的动画样式 res/anim/animation.xml java代码: XML/HTML代码 1. < ?xml version="1.0" encoding="utf-8"?> < set xmlns:android="http://schemas.android.com/apk/res/android"> 2. < alpha android:fromAlpha="1.0" 3. android:toAlpha="0.0" 4. android:duration="700"/> 5. < /set> 复制代码 4、码设置自定义的标题栏 java代码: 1. private WebView browser; 2. @Override 3. public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); 4. getWindow().requestFeature(Window.FEATURE_CUSTOM_TITLE); 5. setContentView(R.layout.main); 6. getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.broser_custom_title); browser = (WebView) findViewById(R.id.my_browser); 7. // currentWebView=browser; 8. browser.setWebChromeClient(new MyWebChromeClient(Main.this)); 9. browser.loadUrl(“http://www.eoeandroid.com”); } 复制代码

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档