Android之加载圈
16lz
2021-01-23
Android 之加载圈
开发过程中经常用到加载圈,特别是车机开发由于外设不同很多操作响应的等待时长经常要用到不同的加载圈。
首先,直接上菊花效果图,这是我直接从项目里面截取下来的。
核心代码
-------------------------
import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;public class CircularLoading {/*** 显示Dialog* @param context 上下文对象* @param msg 提示内容* @param isCancelable 是否可以点击取消* @return*/public static Dialog showLoadDialog(Context context, String msg, boolean isCancelable) {LayoutInflater inflater = LayoutInflater.from(context);View v = inflater.inflate(R.layout.circular_loading, null);RelativeLayout layout = (RelativeLayout) v.findViewById(R.id.dialog_bg);// main.xml中的ImageViewImageView loadImage = (ImageView) v.findViewById(R.id.load_iv);TextView pointTextView = (TextView) v.findViewById(R.id.point_tv);// 加载动画Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context, R.anim.rotating_animation);// 使用ImageView显示动画loadImage.startAnimation(hyperspaceJumpAnimation);pointTextView.setText(msg);Dialog loadingDialog = new Dialog(context, R.style.TransDialogStyle);loadingDialog.setContentView(layout);loadingDialog.setCancelable(isCancelable);loadingDialog.setCanceledOnTouchOutside(false);Window window = loadingDialog.getWindow();WindowManager.LayoutParams lp = window.getAttributes();lp.width = WindowManager.LayoutParams.WRAP_CONTENT;lp.height = WindowManager.LayoutParams.WRAP_CONTENT;window.setGravity(Gravity.CENTER);window.setAttributes(lp);window.setWindowAnimations(R.style.PopWindowAnimStyle);loadingDialog.show();return loadingDialog;}/*** 关闭dialog*/public static void closeDialog(Dialog mCircularLoading) {if (mCircularLoading != null && mCircularLoading.isShowing()) {mCircularLoading.dismiss();}}}
布局文件
--------------------
circular_loading.xml
<?xml version="1.0" encoding="utf-8"?>
动画
---------------------
rotating_animation.xml
<?xml version="1.0" encoding="utf-8"?>
dialog_show.xml
<?xml version="1.0" encoding="utf-8"?>
dialog_hide.xml
<?xml version="1.0" encoding="utf-8"?>
Style
---------------------------
使用方法
------------------
//显示mCircularLoading = CircularLoading.showLoadDialog(Dvr_Activity_Main.this, "加载中...", true);//关闭CircularLoading.closeDialog(mCircularLoading);
更多相关文章
- Android 使用三方库android-gif-drawable 加载Gif图片
- android上下文
- Android使用WebView加载网页及数据
- Android第三方开源NiftyNotification(Android Toast替代品):动画效
- android手机开机动画相关代码解析
- Android固件加载出错(load failed with error -2)
- 【Android高级】DexClassloader和PathClassloader动态加载插件的
- Android切换Activity时的淡入动画和缩小动画