gddhy

_(:з」∠)_ 加载中...
  • 主页
  • 归档
  • 工具
  • 关于
所有文章 友链

gddhy

_(:з」∠)_ 加载中...

  • 主页
  • 归档
  • 工具
  • 关于

安卓WebView带进度条快速使用

2021-12-15
字数统计:564字 阅读时长≈2分

快速集成WebView使用

创建res/drawable/progress_style.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 总进度的颜色 -->
<item android:id="@android:id/background">
<shape>
<solid android:color="#757575" />
</shape>
</item>

<!-- 缓存的颜色 -->
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#C8C8C8" />
</shape>
</clip>
</item>

<!-- 当前进度的颜色 -->
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#66CCFF" />
</shape>
</clip>
</item>

</layer-list>

layout中的view

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="none"
android:overScrollMode="never" />

<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8px"
android:layout_gravity="top"
android:progressDrawable="@drawable/progress_style"
android:visibility="gone" />
</FrameLayout>

在AIDE中可以使用

1
style="@android:style/Widget.ProgressBar.Horizontal"

在Activity中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
String LINK ="";
WebView webView;
ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState){
...

initView();
webView.loadUrl(LINK);
}

private void initView() {
webView = findViewById(R.id.webView);
progressBar = findViewById(R.id.progressBar);

WebSettings webSettings = webView.getSettings();
//如果访问的页面中要与Javascript交互,则webView必须设置支持Javascript
webSettings.setJavaScriptEnabled(true);
//网页在app内打开
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
progressBar.setVisibility(View.GONE);//加载完网页进度条消失
} else {
progressBar.setVisibility(View.VISIBLE);//开始加载网页时显示进度条
progressBar.setProgress(newProgress);//设置进度值
}
super.onProgressChanged(view, newProgress);
}
});
}


/**
* 实现按下源生返回键,返回到上一个网页的方法,直接复制即可,
* 此方法为监听返回按键时的处理
**/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//监听到返回键被按下,并且当前网页可被返回
if (KeyEvent.KEYCODE_BACK == keyCode && webView.canGoBack()) {
//获取当前的网址,与初始网址界面是否相同
if (webView.getUrl().equals(LINK)) {
//相同表示为第一次进入的网址,上一级为源生
finish();
} else {
//返回到网页的上一级
webView.goBack();
//返回true,交于系统处理
return true;
}
}
return super.onKeyDown(keyCode, event);
}

记得申请网络权限

1
<uses-permission android:name="android.permission.INTERNET" />

来源 进度条 jnn_dream
返回到上个网页 Flipped_九蛋

赏

谢谢你请我吃糖果

微信

扫一扫,分享到微信

微信分享二维码
移动呼叫转移
yilia添加一言
目录,不存在的…
留言已关闭
:gddhy
© gddhy
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链

tag:

  • Android
  • 软件分享
  • game
  • Hexo
  • JavaScript
  • 旧机博物馆
  • MIUI
  • Java
  • git
  • Termux
  • mtk
  • 原神
  • Win
  • Html
  • 安卓学习笔记

    缺失模块

  • Luminous' Home
  • 影子博客
  • 四次元领域
  • 初之音
  • Mr.Pumpkin
  • ZhaoQuinn 's Blog