document.write("");

android 自定义 dialog

 

1. 继承Dialog类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import android.animation.ObjectAnimator;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.xxx.xxx.R;
import com.xxx.xxx.interfaces.ILoadingListening;
 
public class XXXLoadingDialog extends Dialog implements ILoadingListening {
    private Context context;
    private ImageView progress;
 
    public LoadingDialog(Context context, String msg) {
        super(context, R.style.no_title);
        this.context = context;
        initView(msg);
    }
 
    private void initView(String msg) {
        View dialogView = LayoutInflater.from(context).inflate(R.layout.XXXloading, null);
        setContentView(dialogView);
        setCanceledOnTouchOutside(false);
        setCancelable(true);
 
        progress = dialogView.findViewById(R.id.progress);
        TextView title = dialogView.findViewById(R.id.title);
        if (msg != null && msg.length() > 0) {
            title.setText(msg);
        }
    }
 
    @Override
    public void show() {
        super.show();
        ObjectAnimator rotation = ObjectAnimator.ofFloat(progress, "rotation", 0f, 359f);
        rotation.setRepeatCount(ObjectAnimator.INFINITE);
        rotation.setInterpolator(new LinearInterpolator());
        rotation.setDuration(1000);
        rotation.start();
    }
 
    @Override
    public void setIsCancelLoading(boolean iscancel) {
        setCancelable(iscancel);
    }
 
    @Override
    public void showLoading() {
        show();
    }
 
    @Override
    public void hiedLoading() {
        if (isShowing()) {
            dismiss();
        }
    }
}

  2. dialog布局

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:layout_margin="40dp"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="20dp"
        android:paddingTop="20dp"
        android:visibility="visible">
 
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center">
 
            <ImageView
                android:id="@+id/progress"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:background="@mipmap/loading" />
        </RelativeLayout>
 
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="加载中"
            android:textColor="@color/gray"
            android:textSize="40sp" />
    </LinearLayout>
</RelativeLayout>

  3. 使用

  全局变量定义

1
private XXXDialog loading;

  初始化

1
loading = new XXXDialog(this, getString(R.string.loading));

  显示调用

1
loading.showLoading();

  隐藏调用

1
loading.hiedLoading();

  

 

posted @   人间春风意  阅读(196)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示

距今时间:
1025天8.00 小时 37.53 分钟

当前新增阅读数:140327