当前位置: 移动技术网 > IT编程>移动开发>Android > Android仿ios加载loading菊花图效果

Android仿ios加载loading菊花图效果

2019年08月02日  | 移动技术网IT编程  | 我要评论

蔡卓妍老公是谁,雅书阁,英语信函

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

 

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

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://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="http://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);
  }
}

效果图:

github地址:

总结

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网