安卓好看的弹出提示(Dialog)—— ColorDialog

19 篇文章 1 订阅
7 篇文章 1 订阅

这个类似于 Sweet Alert Dialog ,同样是弹出提示,这个比Sweet Alert Dialog功能要多点

ColorDialog github地址

展示:

过程:

第一步:project的build.gradle中添加maven

maven { url "https://jitpack.io" }

第二步:添加依赖并Sync Now

implementation 'com.github.andyxialm:ColorDialog:1.0.0'

开始写:

xml创建十个按钮,因为他的方法里面大概就10个主要的方法,略(可以在下面的连接中下载demo查看)

MainActivity.java

package com.example.colordialog;

import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import cn.refactor.lib.colordialog.ColorDialog;
import cn.refactor.lib.colordialog.PromptDialog;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button1 = (Button) findViewById(R.id.button_1);
        Button button2 = (Button) findViewById(R.id.button_2);
        Button button3 = (Button) findViewById(R.id.button_3);
        Button button4 = (Button) findViewById(R.id.button_4);
        Button button5 = (Button) findViewById(R.id.button_5);
        Button button6 = (Button) findViewById(R.id.button_6);
        Button button7 = (Button) findViewById(R.id.button_7);
        Button button8 = (Button) findViewById(R.id.button_8);
        Button button9 = (Button) findViewById(R.id.button_9);
        Button button10 = (Button) findViewById(R.id.button_10);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
        button5.setOnClickListener(this);
        button6.setOnClickListener(this);
        button7.setOnClickListener(this);
        button8.setOnClickListener(this);
        button9.setOnClickListener(this);
        button10.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.button_1: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_SUCCESS)
                        .setAnimationEnable(true)
                        .setTitleText("SUCCESS")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_2: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_DEFAULT)
                        .setAnimationEnable(true)
                        .setTitleText("DEFAULT")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_3: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_HELP)
                        .setAnimationEnable(true)
                        .setTitleText("HELP")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_4: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_INFO)
                        .setAnimationEnable(true)
                        .setTitleText("INFO")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_5: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_WARNING)
                        .setAnimationEnable(true)
                        .setTitleText("Warning")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_6: {
                new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_WRONG)
                        .setAnimationEnable(true)
                        .setTitleText("WRong")
                        .setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容")
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_7: {
                ColorDialog dialog = new ColorDialog(this);
                dialog.setTitle("标题");
                dialog.setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容");
                dialog.setColor("#2b4490");
                dialog.setContentImage(getResources().getDrawable(R.mipmap.touxiang));
                dialog.setPositiveListener("确定", new ColorDialog.OnPositiveListener() {
                    @Override
                    public void onClick(ColorDialog dialog) {
                        Toast.makeText(MainActivity.this, dialog.getPositiveText().toString(), Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                })
                        .setNegativeListener("取消", new ColorDialog.OnNegativeListener() {
                            @Override
                            public void onClick(ColorDialog dialog) {
                                Toast.makeText(MainActivity.this, dialog.getNegativeText().toString(), Toast.LENGTH_SHORT).show();
                                dialog.dismiss();
                            }
                        }).show();
            }
            break;
            case R.id.button_8: {
                ColorDialog dialog = new ColorDialog(this);
                dialog.setTitle("标题");
                dialog.setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容");
                dialog.setPositiveListener("确定", new ColorDialog.OnPositiveListener() {
                    @Override
                    public void onClick(ColorDialog dialog) {
                        Toast.makeText(MainActivity.this, dialog.getPositiveText().toString(), Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                })
                        .setNegativeListener("取消", new ColorDialog.OnNegativeListener() {
                            @Override
                            public void onClick(ColorDialog dialog) {
                                Toast.makeText(MainActivity.this, dialog.getNegativeText().toString(), Toast.LENGTH_SHORT).show();
                                dialog.dismiss();
                            }
                        }).show();

            }
            break;

            case R.id.button_9: {
                ColorDialog dialog = new ColorDialog(this);
                dialog.setTitle("标题");
                dialog.setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容");
                dialog.setContentImage(getResources().getDrawable(R.mipmap.touxiang));
                dialog.setPositiveListener("确定", new ColorDialog.OnPositiveListener() {
                    @Override
                    public void onClick(ColorDialog dialog) {
                        Toast.makeText(MainActivity.this, dialog.getPositiveText().toString(), Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                }).show();
            }
            break;

            case R.id.button_10: {
                ColorDialog dialog = new ColorDialog(this);
                dialog.setTitle("标题");
                dialog.setContentText("内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容");
                dialog.setPositiveListener("确定", new ColorDialog.OnPositiveListener() {
                    @Override
                    public void onClick(ColorDialog dialog) {
                        Toast.makeText(MainActivity.this, dialog.getPositiveText().toString(), Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                }).show();

            }
        }
    }


}

因为按钮多,所以采用这种方式

 

方法介绍

PromptDialog 6种弹出方式,分别为

DIALOG_TYPE_SUCCESS   

DIALOG_TYPE_DEFAULT   

DIALOG_TYPE_HELP  
    
DIALOG_TYPE_INFO

DIALOG_TYPE_WARNING

DIALOG_TYPE_WRONG

一共6种样式,图片在开头已展示

代码为

 new PromptDialog(this)
                        .setDialogType(PromptDialog.DIALOG_TYPE_WRONG)//设置样式
                        .setAnimationEnable(true)//是否有动画
                        .setTitleText("CSDN")//标题
                        .setContentText("CSDN莫言情难忘")//内容
                        .setPositiveListener("OK", new PromptDialog.OnPositiveListener() {//设置监听
                            @Override
                            public void onClick(PromptDialog dialog) {
                                dialog.dismiss();
                            }
                        }).show();//展示

ColorDialog 4种方式

                ColorDialog dialog = new ColorDialog(this);
                dialog.setTitle("标题");//标题
                dialog.setContentText("CSDN莫言情难忘");//内容
                dialog.setColor("#2b4490");//颜色(可以没有)
                dialog.setContentImage(getResources().getDrawable(R.mipmap.touxiang));//图片(可以没有)
                dialog.setPositiveListener("确定", new ColorDialog.OnPositiveListener() {//设置确定监听
                    @Override
                    public void onClick(ColorDialog dialog) {
                        Toast.makeText(MainActivity.this, dialog.getPositiveText().toString(), Toast.LENGTH_SHORT).show();
                        dialog.dismiss();
                    }
                })
                        .setNegativeListener("取消", new ColorDialog.OnNegativeListener() {//取消监听
                            @Override
                            public void onClick(ColorDialog dialog) {
                                Toast.makeText(MainActivity.this, dialog.getNegativeText().toString(), Toast.LENGTH_SHORT).show();
                                dialog.dismiss();
                            }
                        }).show();//展示

demo下载

链接: https://pan.baidu.com/s/1dqCvt5pbCNqu4Hpcl_7S9w

提取码: 6666 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在Android应用中弹出全局对话框,你可以使用系统提供的WindowManager来实现。下面是一个简单的示例代码: ```java public class GlobalDialog { private WindowManager windowManager; private Context context; private View dialogView; public GlobalDialog(Context context) { this.context = context; } public void showDialog() { // 初始化对话框布局 dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_layout, null); // 设置对话框的宽高 WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; // 设置窗口类型为全局对话框 layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; // 获取WindowManager实例 windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); // 将对话框添加到WindowManager中 windowManager.addView(dialogView, layoutParams); } public void dismissDialog() { if (windowManager != null && dialogView != null) { windowManager.removeView(dialogView); windowManager = null; dialogView = null; } } } ``` 在上述代码中,我们创建了一个`GlobalDialog`类来管理全局对话框。通过调用`showDialog()`方法,我们可以在应用中弹出全局对话框,而调用`dismissDialog()`方法则可以关闭对话框。 在布局文件`dialog_layout.xml`中,你可以自定义对话框的样式和内容。 请注意,要使用全局对话框,你的应用必须拥有`SYSTEM_ALERT_WINDOW`权限。你可以在AndroidManifest.xml文件中添加以下权限声明: ```xml <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ``` 同时,从Android 6.0(API级别23)开始,你还需要在运行时请求该权限。 希望这个例子对你有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值