欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android WebView实现顶部进度条

程序员文章站 2022-11-19 19:34:57
项目中用到webview加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验: 效果: 布局:

项目中用到webview加上进度条放在顶部,让用户知道加载进度情况,可以提高用户体验:

效果:

Android WebView实现顶部进度条

布局:

<relativelayout

  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <webview
   android:id="@+id/webview"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_below="@+id/toolbar_container" />

  <progressbar

   android:id="@+id/progressbar"
   style="@style/crowd_item_progressbar"
   android:layout_width="match_parent"
   android:layout_height="3dp"
   android:layout_below="@+id/toolbar_container"
   android:background="@drawable/crowd_progressbar_unselect" />

</relativelayout>

进度条样式:

<style name="crowd_item_progressbar">
  <item name="android:indeterminateonly">false</item>
  <item name="android:progressdrawable">@drawable/crowd_progressbar_background</item>
  <item name="android:minheight">10dp</item>
  <item name="android:maxheight">10dp</item>

</style>

进度图片:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item
  android:id="@android:id/progress" >
  <clip>
   <shape>
    <solid android:color="@color/selected"/>
    <!--<corners android:radius="1.5dp"/>-->
   </shape>
  </clip>
 </item>
</layer-list>

代码:

public class webchromeclient extends android.webkit.webchromeclient {
  @override

  public void onprogresschanged(webview view, int newprogress) {
   if (newprogress == 100) {

    mprogressbar.setvisibility(gone);
   } else {

    if (mprogressbar.getvisibility() == gone)
     mprogressbar.setvisibility(visible);
    mprogressbar.setprogress(newprogress);

   }

   super.onprogresschanged(view, newprogress);

  }

 }

 @override
 protected void onscrollchanged(int l, int t, int oldl, int oldt) {
  layoutparams lp = (layoutparams) mprogressbar.getlayoutparams();
  lp.x = l;
  lp.y = t;
  mprogressbar.setlayoutparams(lp);
  super.onscrollchanged(l, t, oldl, oldt);

 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。