高仿微博等待动画loading——等待动画的实现

一个等待时加载Loading动画效果git

背景

  • 你们都知道,当咱们在app开发的时候,通常少不了,好比当请求网络数据时,确定网速很差的时候。github

  • 在这种状况下,加载的时候比较慢,因此若是此时已经进入了新的界面,那么确定很差看。bash

因此通常都会有一个loading等待提示框,告诉用户正在加载中,给用户更好的体验。所以这就是我教你们实现的效果,先看一下效果图吧:微信

等待加载动画
等待加载动画

我这里使用了一个handler延迟两秒钟让它消失不见。固然项目中你们能够监听本身所须要的方法,使加载框消失。网络

这只是简单的两种实现方式,固然还有更好的其余效果,具体能够本身实现如下,也能够去网上搜索一下。app

说主题吧,我这里只是讲一下思路,具体代码能够试着写一下,固然我在最后会给你们放源代码下载地址。ide

第一步,先写一个自定义dialog,代码也比较详细。就是建立一个dialog,如:布局

public static Dialog createLoadingDialog(Context context, String msg) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(R.layout.dialog_loading, null);// 获得加载view
        LinearLayout layout = (LinearLayout) v
                .findViewById(R.id.dialog_loading_view);// 加载布局
        TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
        tipTextView.setText(msg);// 设置加载信息

        Dialog loadingDialog = new Dialog(context, R.style.MyDialogStyle);// 建立自定义样式dialog
        loadingDialog.setCancelable(true); // 是否能够按“返回键”消失
        loadingDialog.setCanceledOnTouchOutside(false); // 点击加载框之外的区域
        loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
        /**
         *将显示Dialog的方法封装在这里面
         */
        Window window = loadingDialog.getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
        window.setGravity(Gravity.CENTER);
        window.setAttributes(lp);
        window.setWindowAnimations(R.style.PopWindowAnimStyle);
        loadingDialog.show();

        return loadingDialog;
    }复制代码

而后咱们就能够看到返回的是dialog对象,咱们在咱们的类中调用便可。固然,有显示,就有关闭,咱们直接将关闭的方法,也封装在自定义dialog中。动画

/**
     * 关闭dialog
     *
     * @param mDialogUtils
     */
    public static void closeDialog(Dialog mDialogUtils) {
        if (mDialogUtils != null && mDialogUtils.isShowing()) {
            mDialogUtils.dismiss();
        }
    }复制代码

而后咱们进行调用便可。咱们这里只是告诉你们实现的思路,由于涉及到了一些图片素材,ui

因此,我在这里提供一下这两种实现方式的源代码,因此你们能够参考一下.

github项目:

github.com/QQ986945193…

相信本身,没有作不到的,只有想不到的

若是你以为此文对您有所帮助,欢迎入群 QQ交流群 :644196190
微信公众号:终端研发部

技术+职场
技术+职场
相关文章
相关标签/搜索