Android WebView线性进度条实例详解

 更新时间:2016年01月20日 09:43:22   作者:路边桥凉  
这篇文章主要介绍了Android WebView线性进度条实例详解的相关资料,需要的朋友可以参考下

推荐阅读:Android Webview添加网页加载进度条实例详解

先给大家展示下效果图:这个效果图大家一看就懂,在生活经常见到

1.wevbview_progressbar.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<!-- 背景 --> 
<item android:id="@android:id/background"> 
<shape> 
<solid android:color="@android:color/transparent" /> 
</shape> 
</item> 
<!-- 进度条 --> 
<item android:id="@android:id/progress"> 
<clip> 
<shape> 
<solid android:color="@android:color/holo_green_light" /> 
</shape> 
</clip> 
</item>
</layer-list> 

2.ProgressWebView.java

@SuppressWarnings("deprecation")public class ProgressWebView extends WebView 
{ 
private final static String TAG = ProgressWebView.class.getSimpleName(); 
private ProgressBar progressBar; 
private Context context; 
public ProgressWebView(Context context, AttributeSet attrs) 
{ 
super(context, attrs); 
this.context = context; 
progressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal); 
progressBar.setLayoutParams(new AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.MATCH_PARENT, 3, 0, 0)); progressBar.setProgressDrawable(getResources().getDrawable(R.drawable.wevbview_progressbar)); 
addView(progressBar); 
setWebChromeClient(new WebChromeClient()); 
} 
public class WebChromeClient extends android.webkit.WebChromeClient 
{ 
@Override 
public void onProgressChanged(WebView view, int newProgress) 
{ 
Log.d(TAG, "newProgress" + newProgress); 
if (newProgress == 100) 
{ 
progressBar.setVisibility(GONE); 
} 
else 
{ 
if (progressBar.getVisibility() == GONE) 
progressBar.setVisibility(VISIBLE); 
progressBar.setProgress(newProgress); 
} 
super.onProgressChanged(view, newProgress); 
} 
// 处理javascript中的console.log 
@Override 
public boolean onConsoleMessage(ConsoleMessage cm)
{ 
android.util.Log.d(TAG, "webview console " + cm.lineNumber() + " of " + cm.sourceId() + " : " + cm.message()); 
return true; 
} // 处理javascript中的alert() 
@Override 
public boolean onJsAlert(WebView view, String url, String message, JsResult result) 
{ 
result.cancel(); 
return true; 
} 
} 
@Override 
protected void onScrollChanged(int l, int t, int oldl, int oldt) 
{ 
LayoutParams lp = (LayoutParams) progressBar.getLayoutParams(); 
lp.x = l; 
lp.y = t; 
progressBar.setLayoutParams(lp); 
super.onScrollChanged(l, t, oldl, oldt); 
}} 

3.MainActivity.java

ProgressWebView webView = (ProgressWebView)findViewById(R.id.them_webview);webView.setDownloadListener(new DownloadListener()
{ 
@Override 
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) 
{ 
if (url != null && url.startsWith("http://")) 
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
}});webView.loadUrl("http://www.cnblogs.com/hubli/p/4835549.html"); 

4.activity_main.xml

<com.etoury.webviewprogress.ProgressWebView 
android:id="@+id/them_webview" 
android:layout_width="match_parent" 
android:layout_height="match_parent" />

通过以上代码内容给大家介绍了Android WebView线性进度条的相关知识,希望对大家有所帮助。

相关文章

  • Android中微信抢红包助手的实现详解

    Android中微信抢红包助手的实现详解

    本篇文章主要介绍了Android中微信抢红包助手的实现详解,通过利用AccessibilityService辅助服务,监测屏幕内容,如监听状态栏的信息,屏幕跳转等,以此来实现自动拆红包的功能,有兴趣的可以了解一下。
    2017-02-02
  • 关于Android高德地图的简单开发实例代码(DEMO)

    关于Android高德地图的简单开发实例代码(DEMO)

    高德地图在日常生活中经常会用到,那么基于代码如何实现高德地图呢?下面小编给大家分享一个demo帮助大家学习android高德地图的简单开发,需要的朋友参考下
    2016-11-11
  • Android 加载GIF图最佳实践方案

    Android 加载GIF图最佳实践方案

    最近在项目中遇到需要在界面上显示一个本地的 GIF 图的功能,下面通过本文给大家分享Android 加载GIF图最佳实践方案,需要的朋友参考下吧
    2017-08-08
  • Android 10 启动之servicemanager源码解析

    Android 10 启动之servicemanager源码解析

    这篇文章主要为大家介绍了Android 10 启动之servicemanager源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Angular5.0.0新特性

    Angular5.0.0新特性

    Angular5.0.0是一款非常优秀的前端JS框架,已经被用于google多款产品当中,这篇文章主要介绍了Angular5.0.0新特性,需要的朋友可以参考下
    2017-11-11
  • Android 软件自动更新功能实现的方法

    Android 软件自动更新功能实现的方法

    本篇文章小编为大家介绍,Android 软件自动更新功能实现的方法。需要的朋友参考下
    2013-04-04
  • 解决Android自定义view获取attr中自定义颜色的问题

    解决Android自定义view获取attr中自定义颜色的问题

    这篇文章主要介绍了Android自定义view获取attr中自定义颜色的问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Android多进程间采用AIDL方式进行通信

    Android多进程间采用AIDL方式进行通信

    这篇文章主要为大家详细介绍了Android多进程间采用AIDL方式进行通信,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android仿支付宝手势密码解锁功能

    Android仿支付宝手势密码解锁功能

    这篇文章主要为大家详细介绍了Android仿支付宝手势密码解锁功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android开发之使用通知栏显示提醒信息的方法

    Android开发之使用通知栏显示提醒信息的方法

    这篇文章主要介绍了Android开发之使用通知栏显示提醒信息的方法,涉及Notification的使用及通知栏信息设置技巧,需要的朋友可以参考下
    2016-01-01

最新评论