欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-06 16:40:16
效果图首先是创建弹窗的背景这是上面用到的以shape_bg_5_blue.xml为例,其他的三个无非就是里面的颜色不一样而已

效果图

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

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

首先是创建弹窗的背景

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>

然后是图片

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

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

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

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

<!-- 自定义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的值改变不同的弹窗背景。
然后就是一个动画文件

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

这个文件一定要放在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>

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

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

布局代码如下:

<?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弹窗效果的示例代码的文章就介绍到这了,更多相关android 自定义加载 dialog弹窗内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!