加载web视图之前显示的活动圈子 - 机器人 [英] Show activity circle before loading webview - Android
问题描述
我使用的WebView
展现在我的应用程序的网页。该网页大约需要2-3秒加载。
直到网页加载,我想告诉像显示这里一个活动圈进度条。
这是什么样的活动圈子是这样的:
我怎样才能做到呢?
我在网上搜索,但无法找到它是如何实现一个满意的和适当的解释。谢谢!
WebViewPage.java
公共类网页延伸活动{
的WebView网页;
进度进度;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.web_page);
意图startwebpage = getIntent();
网页=(web视图)findViewById(R.id.webView);
web.setWebViewClient(新myWebClient());
web.getSettings()setJavaScriptEnabled(真)。
web.loadUrl(http://www.google.com);
}
公共类myWebClient扩展WebViewClient
{
@覆盖
公共无效onPageStarted(web视图查看,字符串URL,位图图标){
// TODO自动生成方法存根
super.onPageStarted(查看,网址,网站图标);
}
@覆盖
公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){
// TODO自动生成方法存根
view.loadUrl(URL);
返回true;
}
@覆盖
公共无效onPageFinished(web视图查看,字符串URL){
// TODO自动生成方法存根
super.onPageFinished(查看,网址);
}
}
}
在 onPageStarted
方法显示进度
和罢免它在 onPageFinished
。
私人ProgressDialog进度;
-
显示进度条在onPageStarted:
@覆盖 公共无效onPageStarted(web视图查看,字符串URL,位图图标){ // TODO自动生成方法存根 super.onPageStarted(查看,网址,网站图标); // prepare一个进度条对话框 进度=新ProgressDialog(v.getContext()); progressBar.setCancelable(真正的); progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressBar.show(); }
2.Dismiss它onPageFinished:
@覆盖
公共无效onPageFinished(web视图查看,字符串URL){
// TODO自动生成方法存根
super.onPageFinished(查看,网址);
progressBar.dismiss();
}
编辑:使用进度
而不是 ProgressDialog
-
使用以下code的布局。 使用您所选择的绘制为@可绘制/进步
<进度 机器人:ID =@ + ID / progress_bar 风格=机器人:ATTR / progressBarStyleLarge 机器人:layout_width =WRAP_CONTENT 机器人:layout_height =WRAP_CONTENT 机器人:layout_centerHorizontal =真 机器人:layout_centerVertical =真 机器人:能见度=水涨船高 机器人:indeterminateDrawable =@可绘制/进步> < /进度>
-
充气它在你的活动。使其在onPageStarted可见匆匆在onPageFinished。
私人进度prgrsBar; @覆盖 公共无效onPageStarted(web视图查看,字符串URL,位图图标){ // TODO自动生成方法存根 super.onPageStarted(查看,网址,网站图标); prgrsBar.setVisibility(View.VISIBLE); } @覆盖 公共无效onPageFinished(web视图查看,字符串URL){ // TODO自动生成方法存根 super.onPageFinished(查看,网址); prgrsBar.setVisibility(View.GONE); }
I am using webview
to show a webpage in my app. The webpage takes about 2-3 seconds to load.
Till the webpage loads, I want to show an activity circle progress bar like the one shown here.
This is what an activity circle looks like :
How can I accomplish it?
I searched the web but couldn't find a satisfactory and proper explanation of how it is implemented. Thanks!
WebViewPage.java
public class Webpage extends Activity {
WebView web;
ProgressBar progressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_page);
Intent startwebpage = getIntent();
web = (WebView) findViewById(R.id.webView);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("http://www.google.com");
}
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
}
}
}
Display progressBar
in onPageStarted
method and dismiss it in onPageFinished
.
private ProgressDialog progressBar;
Show progressBar in onPageStarted:
@Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); // prepare for a progress bar dialog progressBar = new ProgressDialog(v.getContext()); progressBar.setCancelable(true); progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressBar.show(); }
2.Dismiss it in onPageFinished:
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.dismiss();
}
EDIT : Use ProgressBar
instead of ProgressDialog
.
Use Following code in your layout. Use drawable of your choice for "@drawable/progress"
<ProgressBar android:id="@+id/progress_bar" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:visibility="gone" android:indeterminateDrawable="@drawable/progress" > </ProgressBar>
Inflate it in your activity. Make it visible in onPageStarted and gone in onPageFinished.
private ProgressBar prgrsBar; @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); prgrsBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); prgrsBar.setVisibility(View.GONE); }
这篇关于加载web视图之前显示的活动圈子 - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!