android开发分享Android仿ios加载loading菊花图效果

项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还

项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况的显示,还有显示文字。

Android仿ios加载loading菊花图效果 Android仿ios加载loading菊花图效果

使用progressbar 来加载动画转圈,这里使用drawable文件 定义转圈动画, indeterminatedrawable 属性进行加载。

  <?xml version="1.0" encoding="utf-8"?>  <animated-rotate xmlns:android="https://schemas.android.com/apk/res/android"    android:drawable="@mipmap/load"    android:pivotx="50%"    android:pivoty="50%" />  <progressbar    android:id="@+id/progressbar"    android:layout_width="50dp"    android:layout_height="50dp"    android:indeterminatedrawable="@drawable/anim" />

部分情况下,在加载成功/ 失败之后会显示对应的静态图片,所以一开始想直接通过 setindeterminatedrawable(drawable d) 来加载静态图片,但是直接写是显示不出图片的,还要设置drawable 的位置 d.setbounds(rect bounds) ,即使这样加载出了静态图片,但是设置 r.drawable.anim 的转圈动画时 却没有了转圈的效果,好气哟 ~~

所以在自定义view 的布局里 成功/失败的状态单独用 imageview 显示

  <?xml version="1.0" encoding="utf-8"?>  <linearlayout xmlns:android="https://schemas.android.com/apk/res/android"    android:layout_width="110dp"    android:layout_height="110dp"    android:background="@drawable/shape_dialog_bg"    android:gravity="center"    android:orientation="vertical">    <progressbar      android:id="@+id/progressbar"      android:layout_width="50dp"      android:layout_height="50dp"      android:indeterminatedrawable="@drawable/anim" />    <imageview      android:id="@+id/iv"      android:visibility="gone"      android:layout_width="50dp"      android:layout_height="50dp" />    <textview      android:id="@+id/tv"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_margintop="10dp"      android:text="正在加载"      android:textcolor="#fff" />  </linearlayout>

自定义view,提供三种状态的方法。

  public class loadingview extends linearlayout {    ...构造函数...    /**     * loading     */    public void showloading() {      iv.setvisibility(gone);      progressbar.setvisibility(visible);    }    /**     * 成功     */    public void showsuccess() {      iv.setimageresource(r.mipmap.load_success);      iv.setvisibility(view.visible);      progressbar.setvisibility(gone);    }    /**     *失败     */    public void showfail() {      iv.setimageresource(r.mipmap.load_fail);      iv.setvisibility(view.visible);      progressbar.setvisibility(gone);    }    /**     * 提示文字     *     * @param txt string     */    public void settext(string txt) {      tv.settext(txt);    }    /**     * 提示文字     */    public void settext(@stringres int txtid) {      tv.settext(txtid);    }  }

效果图:

Android仿ios加载loading菊花图效果

github地址:

总结

以上所述是小编给大家介绍的android仿ios加载loading菊花图效果,希望对大家有所帮助

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/901146.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐