import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends Activity {
Handler handler;
WebView wv;
TextView textView;
ProgressBar progressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
LinearLayout rootViewLayout = new LinearLayout(this);
rootViewLayout.setOrientation(LinearLayout.VERTICAL);
textView = new TextView(this);
textView.setTextColor(Color.RED);
//生成水平進度條
progressBar = new ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal);
wv = new WebView(this);
rootViewLayout.addView(textView);
rootViewLayout.addView(progressBar);
rootViewLayout.addView(wv);
setContentView(rootViewLayout);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.12306.cn");
wv.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
//頁面下載完畢,卻不代表頁面渲染完畢顯示出來
//WebChromeClient中progress==100時也是一樣
if (wv.getContentHeight() != 0) {
//這個時候網頁才顯示
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//自身加載新鏈接,不做外部跳轉
view.loadUrl(url);
return true;
}
});
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
// TODO Auto-generated method stub
super.onProgressChanged(view, newProgress);
//這裏將textView換成你的progress來設置進度
// if (newProgress == 0) {
// textView.setVisibility(View.VISIBLE);
// progressBar.setVisibility(View.VISIBLE);
// }
textView.setText(newProgress+"");
textView.postInvalidate();
progressBar.setProgress(newProgress);
progressBar.postInvalidate();
// if (newProgress == 100) {
// textView.setVisibility(View.GONE);
// progressBar.setVisibility(View.GONE);
// }
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
轉子:http://www.eoeandroid.com/thread-248551-1-1.html