android的進度條使用

來源:互聯網
上載者:User

android的進度條
1、實現的效果
 

 

 

2、布局代碼
先寫一個my_browser.xml檔案 存放WebView

[html] 
<?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存放進度條的

[html] 
<?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事件(進度條載入完成後使用動畫漸退)

[java] 
/** 
 * MyWebChromeClient.java 
 * 著作權(C) 2012  
[java] view plaincopy
 * 建立: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


[html] 
<?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、程式啟動類
[java] 
/**
 * 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/");  
 
    } 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.