Android仿ios加载loading菊花图效果

项目中经常会用到加载数据的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地址: https://github.com/taixiang/loading

总结

以上所述是小编给大家介绍的Android仿ios加载loading菊花图效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android自定义加载loading view动画组件

    在github上找的一个有点酷炫的loading动画https://github.com/Fichardu/CircleProgress 我写写使用步骤 自定义view(CircleProgress )的代码 package com.hysmarthotel.view; import com.hysmarthotel.roomcontrol.R; import com.hysmarthotel.util.EaseInOutCubicInterpolator; import android.ani

  • Android自定义View实现loading动画加载效果

    项目开发中对Loading的处理是比较常见的,安卓系统提供的不太美观,引入第三发又太麻烦,这时候自己定义View来实现这个效果,并且进行封装抽取给项目提供统一的loading样式是最好的解决方式了. 先自定义一个View,继承自LinearLayout,在Layout中,添加布局控件 /** * Created by xiedong on 2017/3/7. */ public class Loading_view extends LinearLayout { private Context m

  • Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    一.自定义Dialog 在沉浸式效果下,当界面弹出对话框时,对话框将获取到焦点,这将导致界面退出沉浸式效果,那么是不是能通过屏蔽对话框获取焦点来达到不退出沉浸式的目的呢.说干就干,我们先来看一下改善后的效果图. 普通对话框弹出效果 LoadingDialog弹出效果 自定义LoadingDialog public class LoadingDialog extends Dialog { public LoadingDialog(Context context) { super(context);

  • Android仿微信Viewpager-Fragment惰性加载(lazy-loading)

    前言 今天起床,拿起手机开机第一时间当然是打开微信了,左右滑动Viewpager,发现它使用了一种叫惰性加载,或者说懒加载(lazy-loading)的方式加载Viewpager中的Fragment.效果如图: 什么是lazy-loading呢?顾名思义就是在必要的时候才加载,否则不进行View的绘制和数据的加载.原因是Viewpager一次只会显示一个页卡,那么刚开始的时候,只需加载第一张Fragment页卡,其他的不加载,当用户向右滑动切换再进行加载.因为其他Fragment对于用户来说是不

  • Android通用LoadingView加载框架详解

    手写一个通用加载中.显示数据.加载失败.空数据的LoadingView框架. 定义3个布局:加载中,加载失败,空数据 加载中: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&q

  • Android实现退出界面弹出提示对话框

    根据之前学的Android对话框技术,来实现下面一个效果:界面有一个"退出"按钮,按下之后会弹出一个询问是否退出的提示对话框,单击"不"按钮,不退出游戏,单击"是的"按钮,将退出游戏. 接下来实现此实例: res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="

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

    项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况的显示,还有显示文字.   使用ProgressBar 来加载动画转圈,这里使用drawable文件 定义转圈动画, indeterminateDrawable 属性进行加载. <?xml version="1.0" encoding="utf-8"?> &

  • Android仿视频加载旋转小球动画效果的实例代码

    先上个效果图,以免大家跑错地了. 嗯,除了只能录三秒,其他没啥问题. 下面分析一下怎么实现上面这个效果. 理性分析后我们可以看到是几个小球绕着一个圆进行运动,那这里面的重点我们看看什么. 绘制五个球,没什么难度,让球绕圆进行运动,这个好像我们没有见到是怎么去实现了,那下就说这个. 从本质上看,球绕圆运动,其实我们可以看作是一个物体绕指定的路劲运动,那我们就有下面几个东西需要说一下: 1:Path 2:ValueAnimator 3:PathMeasure 前两个大家应该都见过,一个是路径,就是可

  • Android自定义仿ios加载弹窗

    本文实例为大家分享了Android自定义仿ios加载弹窗的具体代码,供大家参考,具体内容如下 效果如下: IosLoadDialog类(可直接复制): public class IosLoadDialog extends Dialog { public IosLoadDialog(Context context) { super(context, R.style.loading_dialog); initView(); } @Override public boolean onKeyDown(i

  • Android仿微博加载长图滚动查看效果

    本文实例为大家分享了Android加载长图片的具体代码,供大家参考,具体内容如下 解决步骤 1.将图片缩放到与控件等宽 2.判断缩放后的图片高度,如果高度大于控件高度较多(这里设置的是1.5倍),认定为长图,可滑动查看图片                      |-如果高度小于控件高度的1.5倍,以控件高度为基准,重新缩放图片 package org.wandcf_ces.fairproject.widgets; import android.annotation.TargetApi; im

  • Android仿微信加载H5页面进度条

    前言 Android中WebView打卡前端页面时受到网路环境,页面内容大小的影响有时候会让用户等待很久.显示一个加载进度条可以提升很大的体验.微信内访问H5页面加载效果不错,效仿着写了一个. 1.实现 1-1.自定义类继承WebView类 class ProgressWebView(context: Context, attr: AttributeSet) : WebView(context, attr) { /** *xml布局中使用,所以用两个构造参数的构造函数 */ private va

  • Android如何使用Glide加载清晰长图

    最近项目中使用的是Glide加载图片,上线后用户反馈图片模糊,经过测试后发现是用户点击超长图放大的时候,图片变的模糊看不起,这很影响用户的体验,要解决这个问题,我们需要先充分的了解Glide的使用. Glide概述 使用习惯Glide3的朋友总会觉得Glide 4相对于Glide 3改动非常大,其实不然.之所以大家会有这种错觉,是因为你将Glide 3的用法直接搬到Glide 4中去使用,结果IDE全面报错,然后大家可能就觉得Glide 4的用法完全变掉了. 其实Glide 4相对于Glide

  • Android自定义带进度条WebView仿微信加载过程

    在正常开发中,我们客户端需要用webView加载网页,再遇到网络慢或者访问的服务器响应时,页面是空白的,所以为了用户更好的体验,我们可以提供一个正在加载的进度条,提示用户正在加载. 本文结构: 1.自定义webView 2.在应用中的使用 3.效果展示 一.自定义webView 1.首先定义一个类,继承webView,并首先构造方法 public class ProgressBarWebView extends WebView{} 自定义控件,先实现构造方法, 第一中是程序内部实例化采用,传入c

  • Android之仿美团加载数据帧动画

    一:先来张效果图(这里是GIF动画,我就截屏的所有没有动画,实际是动的): 二:实现步骤: 1.xml布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" an

  • Android中Glide加载到RelativeLayout背景图方法示例

    前言 Glide是 Google推荐的图片加载库,它可以支持来自url,Android资源,文件,Uri中的图片加载,同时还支持gif图片的加载,以及各种图片显示前的bitmap处理(例如:圆角图片,圆形图片,高斯模糊,旋转,灰度等等),缓存处理,请求优先级处理,动画处理,缩略图处理,图片大小自定义等等.可谓是非常的强大. 一般情况下我们都是使用Glide加载图片到ImageView上,那么如何加载到RelativeLayout的背景上呢? RelativeLayou是一个用于设计用户界面的强大

随机推荐