最近在搞廣告平臺的一些東西,看瞭一下別的廣告平臺的jar包,基本上都會有一個Activity用來顯示web網頁,用到瞭一個用來顯示網頁的組件–WebView。但是其網頁的加載進度就不受我們控制瞭,所以當網頁數據很多時就可能會很慢才會顯示,這樣的用戶體驗不好,如果能夠有一個進度提示就好些瞭,在網上搜到瞭一篇博文,用來解決此問題。所以發出來供大傢參考。
當然瞭這篇博文其實相當於轉載,因為我沒怎麼添加新的內容,慚愧啊。
首先貼上我的效果圖,如下:
加載完成後的圖片:
代碼很少,基本是一個方法的事,具體如下:
[java] import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewFinishedActivity extends Activity {
/** Called when the activity is first created. */
WebView web = null;
ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
web = (WebView)findViewById(R.id.webView1);
if(web != null)
{
web.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view,String url)
{
dialog.dismiss();
}
});
loadUrl("");
}
}
public void loadUrl(String url)
{
if(web != null)
{
web.loadUrl(url);
dialog = ProgressDialog.show(this,null,"頁面加載中,請稍後..");
web.reload();
}
}
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewFinishedActivity extends Activity {
/** Called when the activity is first created. */
WebView web = null;
ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
web = (WebView)findViewById(R.id.webView1);
if(web != null)
{
web.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view,String url)
{
dialog.dismiss();
}
});
loadUrl("");
}
}
public void loadUrl(String url)
{
if(web != null)
{
web.loadUrl(url);
dialog = ProgressDialog.show(this,null,"頁面加載中,請稍後..");
web.reload();
}
}
xml佈局也貼上吧,省的在自己碼瞭:
[html] <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</LinearLayout>
開發提示:
1 調用WebView的setWebViewClient方法,為其設置加載頁面的Client。
2 為該Client重載函數onPageFinished,並在裡面調用ProgressDialog的dismiss函數。
3 務必在AndroidManifest.xml中加入
<uses-permission
android:name="android.permission.INTERNET"/>
並註意放的位置。
4 由於在多個函數中使用瞭ProgressDialog,所以將其設計類的變量。
5 代碼下載:http://up.aiwalls.com/2012/0410/20120410103313842.zip
摘自 agods–足跡