现在所能看到的加载动画五花八门,也有很多优秀的库,但是有些时候并不能满足我们小公司的需求,比如页面中接口请求时的加载动画,可能只是需要很简单的一个大众的加载效果,自己去写的话需要花费很多时间。只要明白代码逻辑,直接拿来用就好。话不多说,上效果图。
可以 看到,就是一个很简单的大众的加载效果,但是也满足很多需求了。
用法:
开始动画:Dialog loadingDialog = LoadDialogUtils.createLoadingDialog(上下文, "加载中......");关闭:LoadDialogUtils.closeDialog(loadingDialog);
就这么简单,下面是这个工具类的具体代码
public class LoadDialogUtils {public static Dialog createLoadingDialog(Context context, String msg) {LayoutInflater inflater = LayoutInflater.from(context);View v = inflater.inflate(R.layout.dialog_loading1, null);// 得到加载viewLinearLayout 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);// 创建自定义样式dialogloadingDialog.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** /qq_21376985** @param mDialogUtils*/public static void closeDialog(Dialog mDialogUtils) {if (mDialogUtils != null && mDialogUtils.isShowing()) {mDialogUtils.dismiss();}}}
xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:id="@+id/dialog_loading_view"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><LinearLayoutandroid:layout_width="150dp"android:layout_height="110dp"android:background="@drawable/loading_bg"android:gravity="center"android:orientation="vertical"android:paddingBottom="10dp"android:paddingLeft="21dp"android:paddingRight="21dp"android:paddingTop="10dp"><ProgressBarandroid:id="@+id/progressBar1"android:layout_width="35dp"android:layout_height="35dp"android:layout_gravity="center_horizontal"android:indeterminateBehavior="repeat"android:indeterminateDrawable="@drawable/dialog_loading"android:indeterminateOnly="true" /><TextViewandroid:id="@+id/tipTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:text="加载中..."android:textColor="#f0f0f0"android:textSize="15sp" /></LinearLayout></LinearLayout>
dialog_loading
<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="/apk/res/android"android:drawable="@mipmap/dialog_loading_img"android:pivotX="50%"android:pivotY="50%" />
2. loading_bg
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="/apk/res/android"xmlns:tools="/tools"android:drawable="@drawable/loading_bg"android:fromDegrees="0"android:pivotX="50%"android:pivotY="50%"android:toDegrees="360"tools:ignore="ResourceCycle" />
style样式
<!-- popup window 显示消失动画--><style name="PopWindowAnimStyle"><item name="android:windowShowAnimation">@anim/dialog_loding_enter</item><!-- 指定显示的动画xml --><item name="android:windowHideAnimation">@anim/dialog_loding_exit</item><!-- 指定消失的动画xml --></style><!-- my loading dialog --><style name="MyDialogStyle"><item name="android:windowBackground">@android:color/transparent</item><item name="android:windowFrame">@null</item><item name="android:windowNoTitle">true</item><item name="android:windowIsFloating">true</item><item name="android:windowIsTranslucent">true</item><item name="android:windowContentOverlay">@null</item><item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><item name="android:backgroundDimEnabled">true</item></style>
anim需要在res文件下创建anim命名的文件
dialog_loding_enter===============><?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><alpha android:fromAlpha="0.2"android:toAlpha="1.0"/></set>dialog_loding_exit===============><?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><alpha android:fromAlpha="1.0"android:toAlpha="0"/></set>
最后还需要使用.9图,直接下载后放入资源文件既可
到这里,这个加载动画的配置就都完成了,希望可以忙到各位!