android的进度条使用

android的进度条

1、实现的效果

2、布局代码

先写一个my_browser.xml文件 存放WebView

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

    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</LinearLayout>

进度条布局

然后写一个broser.xml存放进度条的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
android:layout_height="fill_parent">
	<TextView
	android:id="@+id/tvtitle"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:focusableInTouchMode="true"
	android:singleLine="true"
	android:ellipsize="marquee"
	android:focusable="false"
	android:marqueeRepeatLimit="marquee_forever"
	android:textSize="20sp" android:layout_centerVertical="true"/>
	<ProgressBar
		android:id="@+id/pb"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		style="?android:attr/progressBarStyleHorizontal"
		android:visibility="gone"
		android:layout_alignParentBottom="true" >
	</ProgressBar> 

</RelativeLayout>

WebChromeClient

重写onProgressChanged和onReceivedTitle事件(进度条载入完毕后使用动画渐退)

/**
 * MyWebChromeClient.java
 * 版权全部(C) 2012 
 * 创建:cuiran 2012-10-16 下午3:05:34
 */
package com.cayden.citygirl.activity;

import android.app.Activity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.ProgressBar;
import android.widget.TextView;

/**
 * TODO
 * @author cuiran
 * @version TODO
 */
public class MyWebChromeClient extends WebChromeClient {

	private Activity activity; 

	private ProgressBar pb; 

	private Animation animation; 

	private TextView tvtitle; 

	public MyWebChromeClient(Activity activity) { 

		this.activity = activity; 

	} 

	@Override
	public void onProgressChanged(WebView view, int newProgress) {
		pb=(ProgressBar)activity.findViewById(R.id.pb);
		pb.setMax(100);
		if(newProgress<100){
		if(pb.getVisibility()==View.GONE) pb.setVisibility(View.VISIBLE);
		pb.setProgress(newProgress);
		}else{
		pb.setProgress(100);
		animation=AnimationUtils.loadAnimation(activity, R.anim.animation);
		// 执行动画
		 pb.startAnimation(animation);
		// 将 spinner 的可见性设置为不可见状态
		pb.setVisibility(View.INVISIBLE);
		}
		super.onProgressChanged(view, newProgress);
	}
	@Override
	public void onReceivedTitle(WebView view, String title) { 

		tvtitle=(TextView)activity.findViewById(R.id.tvtitle); 

		tvtitle.setText(title);
		super.onReceivedTitle(view, title);

	} 

}

进度条的动画样式 res/anim/animation.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="700"/>
</set>

5、程序启动类

/**
 * ProgressActivity.java
 * 版权全部(C) 2012
 * 创建:cuiran 2012-10-16 下午3:13:49
 */
package com.cayden.citygirl.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebView;

/**
 * TODO
 * @author cuiran
 * @version TODO
 */
public class ProgressActivity extends Activity {

	private WebView browser;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	getWindow().requestFeature(Window.FEATURE_CUSTOM_TITLE); 

	setContentView(R.layout.my_browser); 

	getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.broser);

	browser = (WebView) findViewById(R.id.webView); 

	// currentWebView=browser; 

	browser.setWebChromeClient(new MyWebChromeClient(ProgressActivity.this)); 

	browser.loadUrl("http://shop.paipai.com/731681975/"); 

	}

}
时间: 2024-12-15 04:59:50

android的进度条使用的相关文章

Android自定义进度条样式

最近在做一个widget,上面需要一个progressbar,产品经理和设计师给出来的东西是要实现一个圆角的progress和自定义的颜色,研究一小下,分享出来给大家哦. 测试于:Android4.0+ 操作步骤: 1.创建你的layout文件引用progressbar如下,标红处引用你自定的样式: <ProgressBar android:id="@+id/progressDownload" style="?android:attr/progressBarStyleH

Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

/** * 带文本提示的进度条 */ public class TextProgressBar extends ProgressBar { private String text; private Paint mPaint; public TextProgressBar(Context context) { super(context); initText(); } public TextProgressBar(Context context, AttributeSet attrs, int d

[Android]组件-进度条1

多式样ProgressBar 普通圆形ProgressBar 该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中. 一般只要在XML布局中定义就可以了. <progressBar android:id="@+id/widget43" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layou

Android中进度条类型的控件定义和妙用技巧

Android中进度条控件有3个(不算ProgressDialog),分别是ProgressBar,SeekBar和RatingBar,对于自定义样式来说又得按照需求分为2中情况,第一种是刻度型,第二种是循环类型. 第一种是"刻度型",也就是他有起点和终点,起点值小于终点值 这种样式的修改,要修改三个属性即可 分别是:背景(主要是进度的轨道样式),第一级别滚动条progressDrawable,第二级别progressDrawable 遗憾的是Android提供的api很难设置,不过可

Android之进度条2

我之前有写过一篇“Android之进度条1”,那个是条形的进度条(显示数字进度),这次实现圆形进度条. 点击查看Android之进度条1:http://www.cnblogs.com/caidupingblogs/p/5102745.html> MainActivity继承Activity实现Runnable接口: package com.cdp.progressbar; import android.app.Activity; import android.os.Bundle; import

android 自定义进度条颜色

先看图 基于产品经理各种自定义需求,经过查阅了解,下面是自己对Android自定义进度条的学习过程!   这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\  下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml 找到xml后,进去找到 [html] view plaincopyprint? <span style="font-size: 18px;">    <style name

android 14 进度条和拖动条

进度条: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ProgressBar 默认进度条 andr

Android loading进度条使用简单总结

在这里,总结一下loading进度条的使用简单总结一下. 一.说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验. 先来找图看看,做这个图完成不用图片就可以做到了. 看下xml布局文件,其实就是直接用xml写的在加两个属性设置一下就好了,一个style,另一个是background. <ProgressBar android:id="@+id/pb_progressbar" style="

android ProgressBar 进度条的进度两端是圆角的方法

转自 http://www.jianshu.com/p/6e7ea842d5ce 另外工作原理可以参考http://blog.csdn.net/lan603168/article/details/44705425 ProgressBar 自定义的时候可能会遇到一个问题,希望进度条中的进度的两端都是圆角的(或者进度的末端是圆角的):如下图: progress bar rounder 但是根据自定义的shape 或者是 layer-list却总是很难做到,几乎都是被clip成了直角的样子: prog