adnroid仿miui的dialog

adnroid仿miui的dialog

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

先来看下效果图:

adnroid仿miui的dialog

当中show和dismiss的时候有动画效果。

原先试过使用PopupWindow来做,可是使用的时候不是那么舒服,毕竟不是dialog嘛。

所以这次尝试还是使用dialog来做 ,非常多地方是引用了系统源代码(源代码是最好的老师)

首先看CustomDialog.java的构造函数:

protected CustomDialog(Context context) {
        this(context, R.style.CustomDialog);
    }

    protected CustomDialog(Context context, int theme) {
        super(context, theme);
        mAlert = new AlertController(context, this, getWindow());
        
        Window window = getWindow();
        window.setGravity(Gravity.BOTTOM); // 设置window的位置为底部
        window.setWindowAnimations(R.style.AnimationDialog); // 设置window的动画
        window.setBackgroundDrawableResource(android.R.color.transparent); // 设置window背景透明
    }

 

艾玛,不太会描写叙述,直接上源代码

0资源分代码下载地址:http://download.csdn.net/detail/luck_apple/7735321

源代码中有点小问题,addView功能没有实现,在AlertController中加入下面代码就可以:

public void apply(AlertController dialog) {
            if (mTitle != null) {
                dialog.setTitle(mTitle);
            }
            if (mMessage != null) {
                dialog.setMessage(mMessage);
            }
            if (mPositiveButtonText != null) {
                dialog.setButton(DialogInterface.BUTTON_POSITIVE, mPositiveButtonText,
                        mPositiveButtonListener, null);
            }
            if (mNegativeButtonText != null) {
                dialog.setButton(DialogInterface.BUTTON_NEGATIVE, mNegativeButtonText,
                        mNegativeButtonListener, null);
            }
            // addView的实现
            if (mView != null) {
                if (mViewSpacingSpecified) {
                    dialog.setView(mView, mViewSpacingLeft, mViewSpacingTop, mViewSpacingRight,
                            mViewSpacingBottom);
                } else {
                    dialog.setView(mView);
                }
            }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118085.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Err] 22001 – [SQL Server]将截断字符串或二进制数据。「建议收藏」

    [Err] 22001 – [SQL Server]将截断字符串或二进制数据。「建议收藏」问题描述:数据库插入数据时,报错[Err]22001-[SQLServer]将截断字符串或二进制数据。01000-[SQLServer]语句已终止。问题原因:添加的字符串长度,超过设置的varchar长度问题处理:减字符串长度,或增varchar长度…

    2022年10月6日
    4
  • cpio制作initrd_正在生成initramfs

    cpio制作initrd_正在生成initramfs1、制作find.|cpio-o-Hnewc|gzip>../rootfs.cpio.gz2、解压zcatrootfs.cpio.gz|cpio-i-d-Hnewc–no-absolute-filename3、内核逻辑编译内核的时候会有一个GENinitramfs_data.cpio.gz如果有文件,就编译

    2022年8月11日
    12
  • goland2021.4激活码_通用破解码

    goland2021.4激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    375
  • goland2021永久激活码破解方法

    goland2021永久激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    97
  • BCG库的一个bug[通俗易懂]

    BCG库的一个bug[通俗易懂]作者:朱金灿来源:http://blog.csdn.net/clever101            同事在使用BCG库图表组件(BCG库的版本为BCGCBPRO1510)时遇到一个问题,就是图表标题总是出现乱码,具体如下图:我查看了一下BCG库的源码,发现BCG库的绘制接口是采用D2D的接口。D2D是微软推出的一个二维绘制的com组件,只支持unicode字符,非unicode字符需要转换

    2022年10月8日
    2
  • springboot实现查询手机号归属地

    springboot实现查询手机号归属地我也不知道咋写的,测试过了,反正能用就行;packagecom.example.needs.util;importorg.apache.http.HttpEntity;importorg.apache.http.ParseException;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.h

    2022年7月22日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号