一:先来张效果图(这里是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" androID:layout_height="match_parent" androID:orIEntation="vertical"> <TextVIEw androID:ID="@+ID/textvIEw" androID:layout_wIDth="match_parent" androID:layout_height="50dp" androID:layout_alignParentBottom="true" androID:layout_margin="20dp" androID:background="@drawable/animationtk" androID:gravity="center" androID:text="点击d出动画" androID:textcolor="#fff" androID:textSize="18dp" /></relativeLayout>
2.activity代码
package cll.com.myapplication;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.TextVIEw;/** * @Description 奔跑小人的动画d框,可以用作加载数据界面 * 2017-4-3 http://blog.csdn.net/androID_cll */public class RuningManActivity extends Activity implements VIEw.OnClickListener { private TextVIEw textvIEw;//点击按钮 @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.ac_runing_man); initlayout(); } /** * 实例化 */ private voID initlayout() { textvIEw = (TextVIEw) findVIEwByID(R.ID.textvIEw); textvIEw.setonClickListener(this); } /** * 显示美团进度对话框 * * @param v */ public voID showmeIDialog(VIEw v) { CustomProgressDialog dialog = new CustomProgressDialog(this,"正在加载中......",R.anim.animation); dialog.setCanceledOn@R_403_5985@OutsIDe(false);//设置是否可以点击外部消失 dialog.setCancelable(false);//设置是否可以按退回键取消 dialog.show(); } @OverrIDe public voID onClick(VIEw vIEw) { switch (vIEw.getID()) { case R.ID.textvIEw: showmeIDialog(vIEw); break; } }}
3.自定义d框工具类
package cll.com.myapplication;import androID.app.ProgressDialog;import androID.content.Context;import androID.graphics.drawable.AnimationDrawable;import androID.os.Bundle;import androID.Widget.ImageVIEw;import androID.Widget.TextVIEw;/** * @Description:自定义加载数据d框 * @author 2017-4-3 http://blog.csdn.net/androID_cll */public class CustomProgressDialog extends ProgressDialog { private AnimationDrawable mAnimation; private ImageVIEw mImageVIEw; private String mloadingTip; private TextVIEw mloadingTv; private int mResID; public CustomProgressDialog(Context context,String content,int ID) { super(context); this.mloadingTip = content; this.mResID = ID; setCanceledOn@R_403_5985@OutsIDe(true); } @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initVIEw(); initData(); } private voID initData() { mImageVIEw.setBackgroundResource(mResID); // 通过ImageVIEw对象拿到背景显示的AnimationDrawable mAnimation = (AnimationDrawable) mImageVIEw.getBackground(); // 为了防止在onCreate方法中只显示第一帧的解决方案之一 mImageVIEw.post(new Runnable() { @OverrIDe public voID run() { mAnimation.start(); } }); mloadingTv.setText(mloadingTip); } private voID initVIEw() { setContentVIEw(R.layout.progress_dialog); mloadingTv = (TextVIEw) findVIEwByID(R.ID.loadingTv); mImageVIEw = (ImageVIEw) findVIEwByID(R.ID.loadingIv); }}
4.自定义d框的xml布局
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:orIEntation="vertical" > <ImageVIEw androID:ID="@+ID/loadingIv" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="@anim/animation"/> <TextVIEw androID:ID="@+ID/loadingTv" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignBottom="@+ID/loadingIv" androID:textcolor="#fff" androID:layout_centerHorizontal="true" androID:textSize="20sp" androID:text="正在加载中.." /></relativeLayout>
5.anim文件下的帧动画文件
<?xml version="1.0" enCoding="utf-8"?> <animation-List androID:oneshot="false" xmlns:androID="http://schemas.androID.com/apk/res/androID" > <item androID:drawable="@mipmap/progress_loading_image" androID:duration="150"/> <item androID:drawable="@mipmap/progress_loading_imagey" androID:duration="150"/></animation-List>
到此加载数据d框的帧动画功能就实现了,不喜勿喷,都有注释就不用解释太多
最后附上源码:http://download.csdn.net/download/android_cll/9802503
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!
总结以上是内存溢出为你收集整理的Android之仿美团加载数据帧动画全部内容,希望文章能够帮你解决Android之仿美团加载数据帧动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)