zoukankan      html  css  js  c++  java
  • 超强安卓自定义对话模框

    安卓的自定义对话框,貌似很多限制,比如有白边、黑边,又或者对话框外有一层透明灰色,又或者对话框大小无法控制,如下图:

    对话框外有了一层灰色盖住了下面的界面:

    有白边,且大小不对:

    对话框有背景图边缘有透明色,因此透明变成了黑边

    四个角有黑点

    我曾试过很多方法,达到不自己想要的对话框,后来用网上的自定义对话框解决了问题,关键是在:

    final CustomDialog dialog = new CustomDialog(context, R.style.Dialog);//此处指定的对话框的样式文件中:需要设置一个透明背景:

    <item name="android:windowBackground">@android:color/transparent</item>

    后来发现其实用PopupWindow就非常简单的解决了所有问题,更方便、更简单、更快捷:
    1、首先在xml布局文件里写好对话框的界面

    2、定义PopupWindow对话框:

            /** 创建一个PopupWindow对话框并显示 */
            private void openPopupWindowDialog() {
    		View dialogView = View.inflate(getApplicationContext(), R.layout.activity_more_dialog, null);
    		dialogView.findViewById(R.id.btn_i_goto).setOnClickListener(this);
    		dialogView.findViewById(R.id.btn_later_on).setOnClickListener(this);
    		popupWindow = new PopupWindow(dialogView, -1, -1, true);//参数true设置PopupWindow能获取焦点
    		popupWindow.showAtLocation(root, Gravity.CENTER, 0,0);
    	}
    	
            /** 隐藏PopupWindow对话框并释放对象 */
    	public void dismissPopWindow() {
    		if (popupWindow != null && popupWindow.isShowing()) {
    			popupWindow.dismiss();
    			popupWindow = null;
    		}
    	}

    示例代码下载:http://pan.baidu.com/share/link?shareid=215501&uk=2617640990

  • 相关阅读:
    力扣 503 :下一个更大元素 II
    力扣 684 :冗余连接
    时间空间复杂度
    并查集
    UE4解决贴花拉伸的简单办法
    《程序员修炼之道Ⅱ》读书简记
    mac中安装支持m1的软件,提示已损坏问题解决
    在idea中构建gradle项目报错Command line is too long
    向上向下取整
    web端开发工具下载地址
  • 原文地址:https://www.cnblogs.com/runwind/p/4454685.html
Copyright © 2011-2022 走看看