继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕妹3146593
关注TA
已关注
手记 107
粉丝 14
获赞 39

一:先来张效果图(这里是GIF动画,我就截屏的所有没有动画,实际是动的):

一:先来张效果图(这里是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="点击弹出动画"        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 奔跑小人的动画弹框,可以用作加载数据界面 *  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.setCanceledOnTouchOutside(false);//设置是否可以点击外部消失        dialog.setCancelable(false);//设置是否可以按退回键取消        dialog.show();    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.textview:
                showmeidialog(view);                break;        }
    }
}
3.自定义弹框工具类、


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:自定义加载数据弹框 * @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;      setCanceledOnTouchOutside(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.自定义弹框的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>



-------------------------到此加载数据弹框的帧动画功能就实现了,都有注释就不用解释太多。

原文链接:http://www.apkbus.com/blog-847095-68104.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP