android实现用户体验超棒的微信WebView进度条
现在微信的用户体验一直被产品经理们所推崇,今天这里具体分析一下微信在WebView的进度条上怎么提升用户体验.
最终微信的加载进度条的效果图
网络正常的状态,分为两种加载速度,前部分正常速度加载,后边速度特意放慢,让用户感觉到你在非常卖力的在进行网络请求.
断开网络的状态: 进度条还是分为两种速度,类似于网络正常的状态,也能让用户感觉到你在非常卖力的在进行网络请求.
实现的思路
- 大方面要分两种情况:没有网络,有网络情况
- 实现加载进度条的两种速度,前边比较快,后边估计放缓慢
- 利用自定义View属性动画实现进度条的流畅加载
- 进度条的渐变消失
遇到的难点,踩过的坑
1、进度条的位置问题
进度条加载完成后消失,是invisible还是gone掉,前者会留下一片空白,后者会让下边的webview向上跳一下。有人会说获取网页的颜色,然后把进度条的颜色换成相对应的颜色,这个太复杂了。然后仔细看微信的实现方案,发现在相对布局xml中直接把进度条放到webview后边,然后置顶就可以了,加载完毕后就会消失。
2、断开网络状态下,错误拦截状态下onProgressChanged还是会从0到100,会出现两个进度条,解决办法办法倒是简单,当时可是没想通,断网居然还走这个方法.
3、两种进度条加载速度的实现和进度条的流畅加载
流畅加载 ::我这里自定义View来实现的,通过属性动画来实现流畅加载
两种加载速度 :
这里自定义View里边设置方法和方法回调
两种加载速度的具体实现
源码地址:WebViewProgress_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Android中WebView加载网页设置进度条
本文实例为大家分享了Android中WebView加载网页设置进度条的具体代码,供大家参考,具体内容如下 效果: xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" a
-
Android编程实现WebView添加进度条的方法
本文实例讲述了Android编程实现WebView添加进度条的方法.分享给大家供大家参考,具体如下: 标准的XML界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
-
Android中实现Webview顶部带进度条的方法
写这篇文章,做份备忘,简单滴展示一个带进度条的Webview示例,进度条位于Webview上面. 示例图如下: 主Activity代码: 复制代码 代码如下: package com.droidyue.demo.webviewprogressbar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.vi
-
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"&g
-
Android 实现带进度条的WebView的实例
Android 实现带进度条的WebView的实例 1. WebView加载网页方法 //加载本地资源 loadUrl("file:///android_asset/example.html"); //加载网络资源 loadUrl("http://baidu.com"); 2. 带进度的Drawable文件view_progress_webview <?xml version="1.0" encoding="utf-8"
-
Android 带进度条的WebView 示例代码
前言 如果不使用系统自带的TitleBar(即Activity被设置@android:style/Theme.NoTitleBar),那就需要自己来写进度条了,这里封装了一个自定义控件和加载网页的公共Activity,方便使用. 正文 一.截图 二.自定义控件 复制代码 /** * 带进度条的WebView * http://www.cnblogs.com/over140/archive/2013/03/07/2947721.html * */ @SuppressWarnings("deprec
-
Android Webview添加网页加载进度条实例详解
推荐阅读:Android WebView线性进度条实例详解 最近在android项目中使用webview嵌套了一个抽奖活动网页,活动上线,运行良好(改了N次需求和突发bug),还好这种模式的活动,只需要修改网页,不需要重新打包发布市场,这也是这种模式开发的优势之一.后来据产品哥反馈说加载网页无进度提示,好吧,这个当时真没考虑这么多,这个要加加..想当然以为轻松搞定之....其实还是比轻松要复杂点... 1.首先自定义一个WebView控件 /** * 带进度条的Webivew * @author
-
android实现用户体验超棒的微信WebView进度条
现在微信的用户体验一直被产品经理们所推崇,今天这里具体分析一下微信在WebView的进度条上怎么提升用户体验. 最终微信的加载进度条的效果图 网络正常的状态,分为两种加载速度,前部分正常速度加载,后边速度特意放慢,让用户感觉到你在非常卖力的在进行网络请求. 断开网络的状态: 进度条还是分为两种速度,类似于网络正常的状态,也能让用户感觉到你在非常卖力的在进行网络请求. 实现的思路 大方面要分两种情况:没有网络,有网络情况 实现加载进度条的两种速度,前边比较快,后边估计放缓慢 利用自定义View属性
-
Android 中通过实现线程更新Progressdialog (对话进度条)
作为开发者我们需要经常站在用户角度考虑问题,比如在应用商城下载软件时,当用户点击下载按钮,则会有下载进度提示页面出现,现在我们通过线程休眠的方式模拟下载进度更新的演示,如图(这里为了截图方便设置对话进度条位于屏幕上方): layout界面代码(仅部署一个按钮): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.androi
-
Android编程基于自定义View实现绚丽的圆形进度条功能示例
本文实例讲述了Android编程基于自定义View实现绚丽的圆形进度条功能.分享给大家供大家参考,具体如下: 本文包含两个组件,首先上效果图: 1.ProgressBarView1(支持拖动): 2.ProgressBarView2(不同进度值显示不同颜色,不支持拖拽): 代码不多,注释也比较详细,全部贴上了: (一)ProgressBarView1: /** * 自定义绚丽的ProgressBar. */ public class ProgressBarView1 extends View
-
Android中使用AsyncTask实现下载文件动态更新进度条功能
1. 泛型 AysncTask<Params, Progress, Result> Params:启动任务时传入的参数,通过调用asyncTask.execute(param)方法传入. Progress:后台任务执行的进度,若不用显示进度条,则不需要指定. Result:后台任务结束时返回的结果. 2. 重要方法 doInBackground(Params... params):必须重写的方法,后台任务就在这里执行,会开启一个新的线程.params为启动任务时传入的参数,参数个数不定. on
-
Android ProgressDialog用法之实现app上传文件进度条转圈效果
ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog public class ProgressDialog extends AlertDialog ProgressDialog的创建方式有两种,一种是new ProgressDialog,一种是调用ProgressDialog的静态方法show()创建并显示,这种进度条只能是圆形条. ProgressDialog dialog = ProgressDialog.show(this, "提示&quo
-
Android中通过AsyncTask类来制作炫酷进度条的实例教程
AsyncTask (API level 3,所以几乎所有目前在市面上流通的 Android 版本皆可使用) 是除 Thread 外的另一种选择,Android 团队鼓励主执行绪(UI thread) 专注于操作 & 画面的流畅呈现, 其余工作 (如网络资料传输.档案/磁碟/资料存取) 最好都在背景执行: Thread 通常要搭配 Handler 使用,而 AsyncTask 用意在简化背景执行 thread 程序码的撰写. 如果您预期要执行的工作能在几秒内完成,就可以选择使用 AsyncTas
-
Android应用中炫酷的横向和环形进度条的实例分享
一.概述 最近需要用进度条,秉着不重复造轮子的原则,上github上搜索了一番,看了几个觉得比较好看的ProgressBar,比如:daimajia的等.简单看了下代码,基本都是继承自View,彻彻底底的自定义了一个进度条.盯着那绚丽滚动条,忽然觉得,为什么要通过View去写一个滚动条,系统已经提供了ProgressBar以及属于它的特性,我们没必要重新去构建一个,但是系统的又比较丑,不同版本变现还不一定一样.那么得出我们的目标:改变系统ProgressBar的样子. 对没错,我们没有必要去从0
-
Android自定义带加载动画效果的环状进度条
最近闲来无事,自定义了一个环状进度条,话不多说直接上代码 : public class CircleProgressView extends View{ private Paint mCirPaint; private Paint mArcPaint; private Paint mTextPaint; private float radius=200; private int textsize=60; private int progress=68; private int stokeWidt
-
Android自定义View基础开发之图片加载进度条
学会了Paint,Canvas的基本用法之后,我们就可以动手开始实践了,先写个简单的图片加载进度条看看. 按照惯例,先看效果图,再决定要不要往下看: 既然看到这里了,应该是想了解这个图片加载进度条了,我们先看具体用法,再看自定义View的实现: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.co
-
Android上传文件到服务端并显示进度条
最近在做上传文件的服务,简单看了网上的教程.结合实践共享出代码. 由于网上的大多数没有服务端的代码,这可不行呀,没服务端怎么调试呢. Ok,先上代码. Android 上传比较简单,主要用到的是 HttpURLConnection 类,然后加一个进度条组件. private ProgressBar mPgBar; class UploadTask extends AsyncTask<Object,Integer,Void>{ private DataOutputStream outputStr
随机推荐
- JavaScript更改class和id的方法
- Linq to SQL 插入数据时的一个问题
- JS 跳转页面延迟2种方法
- Bootstrap按钮功能之查询按钮和重置按钮
- JavaScript数组操作函数汇总
- 实用javaScript技术-屏蔽类
- asp.net实现利用反射,泛型,静态方法快速获取表单值到Model的方法
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- 纯php打造的tab选项卡效果代码(不用js)
- 使用rst2pdf实现将sphinx生成PDF
- C#在winform中实现数据增删改查等功能
- ThinkPHP调试模式与日志记录概述
- jQuery中:visible选择器用法实例
- jQuery通用的全局遍历方法$.each()用法实例
- php初学者写及时补给skype用户充话费的小程序
- Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
- 从Cocos2d-x2迁移到Cocos2d-x3的过程分享
- PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
- 新手菜鸟必读:session与cookie的区别
- 综合图片计数器