当前位置: 首页 > news >正文

网站设置合理的内链机制重庆谷歌seo关键词优化

网站设置合理的内链机制,重庆谷歌seo关键词优化,英文网站建设公司报价,最近的国内新闻年前有个小需求,要对有些域名的H5进行加载流程优化,通过展示H5加载动画来安抚用户焦躁的心情,以提高用户体验。虽然不能理解加个动画咋就优化了用户体验,但需求还是得做的。想着这是个基础的小功能,独立性比较好&#…

年前有个小需求,要对有些域名的H5进行加载流程优化,通过展示H5加载动画来安抚用户焦躁的心情,以提高用户体验。虽然不能理解加个动画咋就优化了用户体验,但需求还是得做的。想着这是个基础的小功能,独立性比较好,遂记录下来,以资来者。

进度条基本用法

布局

一般加载进度条和webview会放在一起布局,也有为了统一管理将它放在actionBar控件中的,但是考虑到一个app中webview容器不宜过多的因素以及方便理解,还是用简单的线性布局进行处理。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ProgressBarandroid:id="@+id/progress_bar"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="wrap_content" /><WebViewandroid:id="@+id/web_view"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

上述布局中使用的是系统横向进度条,如果不配置style="@android:style/Widget.ProgressBar.Horizontal",则会展示一个系统的转圈加载条。

逻辑

WebView暴露出的页面加载进度回调,需要通过WebChromeClient#onProgressChanged来获取。

    /*** Tell the host application the current progress of loading a page.* @param view The WebView that initiated the callback.* @param newProgress Current page loading progress, represented by*                    an integer between 0 and 100.*/public void onProgressChanged(WebView view, int newProgress) {}

由其源码注释可知,回调中会提供一个0-100的进度值,我们只需要根据这个值去设置我们的进度条即可。具体实现如下:

    class MyWebChromeClient extends WebChromeClient {// 监听网页进度 newProgress进度值在0-100@Overridepublic void onProgressChanged(WebView view, int newProgress) {super.onProgressChanged(view, newProgress);Log.d(TAG, "newProgress:" + newProgress);// 进行进度条更新if (newProgress == PROCESS_BAR_MAX) {progressBar.setVisibility(View.GONE);}progressBar.setProgress(newProgress);}}
完整的Activity代码
package com.example.developerlab;import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;public class WebViewActivity extends Activity {private static final String TAG = WebViewActivity.class.getSimpleName();private static final int PROCESS_BAR_MAX = 100;private WebView mWebView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view);mWebView = findViewById(R.id.web_view);// 设置支持js否则有些网页无法打开mWebView.getSettings().setJavaScriptEnabled(true);mWebView.setWebViewClient(new MyClient());mWebView.setWebChromeClient(new MyWebChromeClient());// 加载网络urlmWebView.loadUrl("https://www.baidu.com/");progressBar = findViewById(R.id.progress_bar);progressBar.setVisibility(View.VISIBLE);}class MyClient extends WebViewClient {}class MyWebChromeClient extends WebChromeClient {// 监听网页进度 newProgress进度值在0-100@Overridepublic void onProgressChanged(WebView view, int newProgress) {super.onProgressChanged(view, newProgress);Log.d(TAG, "newProgress:" + newProgress);// 进行进度条更新if (newProgress == PROCESS_BAR_MAX) {progressBar.setVisibility(View.GONE);}progressBar.setProgress(newProgress);// 如果想展示加载动画,则增加一个drawable布局后,在onCreate时展示,在progress=100时View.GONE即可}}
}

自定义进度条设置

变更系统进度样式

上文布局中使用的是系统横向进度条,属性style可以配置多种系统样式。

<style name="Widget.ProgressBar.Large">
<style name="Widget.ProgressBar.Small">
<style name="Widget.ProgressBar.Inverse">
<style name="Widget.ProgressBar.Large.Inverse">
<style name="Widget.ProgressBar.Small.Inverse">
<style name="Widget.ProgressBar.Small.Title">
<style name="Widget.ProgressBar.Horizontal">

如故需要配置进度条背景颜色,比如一个渐变的彩色进度条。可以通过progressDrawable配置。例如配置渐变样式:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@android:id/background"android:drawable="@color/transparent"/><item android:id="@android:id/progress"><clip><shape><gradientandroid:angle="0"android:centerY="0.75"android:endColor="@color/color_700"android:startColor="@color/color_200"/></shape></clip></item>
</layer-list>
使用加载动画替换进度条

使用加载动画替换进度条,就很省事了,只要在WebChromeClient#onProgressChanged中监听进度数值0时开始加载动画,100时将动画控价View.GONE即可。加载gif动画的方法可以百度一个Glide控件使用说明,十分简单。

ImageView img = linearLayout.findViewById(R.id.progress_img);
Glide.with(img).asGif().load(R.drawable.progress).into(img);

源码

WebViewActivity.java
ctivity_web_view.xml

http://www.yayakq.cn/news/408230/

相关文章:

  • 手机显示的网站该怎样设计主页面设计图片
  • 模板网站建设公司哪个好网站建设的结论
  • 的网站开发工具青少儿编程
  • 怎样把自己做的网页放在网站里注册一个互联网公司需要多少钱
  • 利用php做直播网站网站开发编写籍贯代码
  • 国外的网站模板做好一个网站需要多久
  • 360站长工具网站渗透案例
  • 公司做网站发生的费用分录wordpress评论后可见
  • 儿童 html网站模板定制家具生产厂家
  • 网站注册主机长治一般建一个网站需要多少钱
  • 网站推广解释网站建设业务怎么开展
  • 青岛网站关键词优化公司云主机多个网站
  • 网站建设要写代码吗佛山市建网站做网站费用
  • 涟水县住房和城乡建设局网站前端开发培训得多少钱
  • 做培训网站前端公司做网站需要什么内容
  • 北京手机网站制作多少钱wordpress全景krpano
  • 中国建设网站工程承包分包法网页视频怎么下载到u盘
  • 营销型网站的建设流程忻州市建设厅网站首页
  • 公司网站建设须知wordpress模板导出
  • 成都双流网站建设怎么找需要做推广的公司
  • 打开网站 显示建设中最新一键自助建站程序源码
  • 网站建设在实际工作中的意义住宅和城乡建设部网站
  • win7 iis配置asp.net网站西安网站建设管理
  • 前端做商城网站需要多久网站建设服务费应该算什么科目
  • 怎么创建免费的网站攀枝花网站建设兼职
  • 北京网站建设方面爱做网站
  • 黄山网站推广公司河南代做网站
  • 自己学习建设网站vue前端页面模板
  • 网站开发ceac证网站与网页之间的区别是什么
  • 浅谈做网站的好处公司软件网站建设