Android 自定义加载动画Dialog弹窗效果的示例代码

 更新时间:2020年06月05日 10:18:13   作者:初学者-Study  
这篇文章主要介绍了Android 自定义加载动画Dialog弹窗效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

效果图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首先是创建弹窗的背景

在这里插入图片描述

这是上面用到的
shape_bg_5_blue.xml为例,其他的三个无非就是里面的颜色不一样而已

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
 <corners android:radius="5dp"/>
 <solid android:color="#1C285B"/>
</shape>

然后是图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为有一个是白色的所以你看不见,但是依然可以保存到你本地文件夹下。

然后就是创建一个弹窗的样式

在这里插入图片描述

<!-- 自定义loading dialog -->
 <style name="loading_dialog" parent="android:style/Theme.Dialog">
 <item name="android:windowFrame">@null</item>
 <item name="android:windowNoTitle">true</item>
 <item name="android:windowBackground">@drawable/shape_bg_5_yellow</item>
 <item name="android:windowIsFloating">true</item>
 <item name="android:windowContentOverlay">@null</item>
 </style>

通过这个android:windowBackground的值改变不同的弹窗背景。
然后就是一个动画文件

在这里插入图片描述

这个文件一定要放在anim文件夹下(PS:什么?你说你没有这个文件夹?没有你就创建一个啊,我的天!)
loading_animation.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
 <rotate
 android:interpolator="@android:anim/linear_interpolator"
 android:pivotX="50%"
 android:pivotY="50%"
 android:fromDegrees="0"
 android:toDegrees="+360"
 android:duration="1500"
 android:startOffset="-1"
 android:repeatMode="restart"
 android:repeatCount="-1"/>
</set>

下面就要创建一个现实内容的布局

在这里插入图片描述

布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/dialog_view"
 android:orientation="vertical"
 android:layout_width="120dp"
 android:layout_height="120dp"
 android:gravity="center"
 android:padding="10dp">

 <ImageView
 android:id="@+id/iv_loading"
 android:layout_width="40dp"
 android:layout_height="40dp"
 android:src="@mipmap/icon_loading_5" />

 <TextView
 android:id="@+id/tv_loading_tx"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="10dp"
 android:maxLines="1"
 android:text="玩命加载中..."
 android:textColor="#FFF"
 android:textSize="14sp" />
</LinearLayout>

接下来就是自定义Dialog

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.Gravity;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * 自定义弹窗
 */
public class CustomDialog extends Dialog {

 TextView tvLoadingTx;
 ImageView ivLoading;

 public CustomDialog(Context context) {
 this(context, R.style.loading_dialog, "玩命加载中...");

 }

 public CustomDialog(Context context, String string) {
 this(context, R.style.loading_dialog, string);
 }

 protected CustomDialog(Context context, int theme, String string) {
 super(context, theme);
 setCanceledOnTouchOutside(true);//点击其他区域时 true 关闭弹窗 false 不关闭弹窗
 setContentView(R.layout.loading_dialog);//加载布局
 tvLoadingTx = findViewById(R.id.tv_loading_tx);
 tvLoadingTx.setText(string);
 ivLoading = findViewById(R.id.iv_loading);
 // 加载动画
 Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
  context, R.anim.loading_animation);
 // 使用ImageView显示动画
 ivLoading.startAnimation(hyperspaceJumpAnimation);

 getWindow().getAttributes().gravity = Gravity.CENTER;//居中显示
 getWindow().getAttributes().dimAmount = 0.5f;//背景透明度 取值范围 0 ~ 1
 }

	//关闭弹窗
 @Override
 public void dismiss() {
 super.dismiss();
 }

使用

在这里插入图片描述

这应该能看懂吧,写完收工。

总结

到此这篇关于Android 自定义加载动画Dialog弹窗效果的示例代码的文章就介绍到这了,更多相关Android 自定义加载 Dialog弹窗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • OpenGL ES 矩阵变换及其数学原理详解(五)

    OpenGL ES 矩阵变换及其数学原理详解(五)

    这篇文章主要为大家详细介绍了OpenGL ES 矩阵变换及其数学原理的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 浅谈Android 的线程和线程池的使用

    浅谈Android 的线程和线程池的使用

    本篇文章主要介绍了浅谈Android 的线程和线程池,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Android的webview支持HTML5的离线应用功能详细配置

    Android的webview支持HTML5的离线应用功能详细配置

    HTML5的离线应用功能可以使得WebApp即使在网络断开的情况下仍能正常使用这是个非常有用的功能,但如何使Webivew支持HTML5离线应用功能呢,需要的朋友可以参考下
    2012-12-12
  • Android pcm转wav格式方法

    Android pcm转wav格式方法

    本篇文章主要给大家讲述了在Android开发中将pcm格式转wav格式的方法和代码实例,需要的朋友跟着学习下吧。
    2017-12-12
  • Android实现excel/pdf/word/odt/图片相互转换

    Android实现excel/pdf/word/odt/图片相互转换

    这篇文章主要为大家详细介绍了Android如何实现excel/pdf/word/odt/图片之间的相互转换,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-04-04
  • 如何使用Flutter实现58同城中的加载动画详解

    如何使用Flutter实现58同城中的加载动画详解

    这篇文章主要给大家介绍了关于如何使用Flutter实现58同城中加载动画详的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • Android CameraX打开摄像头预览教程

    Android CameraX打开摄像头预览教程

    大家好,本篇文章主要讲的是Android CameraX打开摄像头预览教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2021-12-12
  • Android左右滑出菜单实例分析

    Android左右滑出菜单实例分析

    想在首页加个从左滑动出来的菜单,我查阅网上资料,并自己摸索,实现了左、右两边都能滑出菜单,并且,左、右菜单中,都可以加ListView等这类需要解决GestureDetector冲突的问题
    2013-06-06
  • android开发仿ios的UIScrollView实例代码

    android开发仿ios的UIScrollView实例代码

    下面小编就为大家分享一篇android开发仿ios的UIScrollView实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • anroid开发教程之spinner下拉列表的使用示例

    anroid开发教程之spinner下拉列表的使用示例

    这篇文章主要介绍了anroid的spinner下拉列表的使用示例,需要的朋友可以参考下
    2014-04-04

最新评论