安卓自定义对话框(位置和大小)

Android 关于 Dialog 的位置设置 通过以上方法,可以根据实际需要,在 Android 应用程序中灵活地设置 Dialog 的显示位置。通过调整 Gravity、x 坐标和 y 坐标等属性,开发人员可以实现自定义的 Dialog 显示位置,以适应不同的用户界面布局需求。在 Android 开发中,Dialog 是一种常用的用户界面组件,用于显示临时性的弹窗或对话框。默认情况下,Dialog 会位于屏幕的中央位置显示,但有时我们需要自定义 Dialog 的显示位置,以适应特定的用户界面布局需求。Android 关于 Dialog 的位置设置。 阅读详情

安卓自定义对话框(位置和大小)


		//自定义对话框
		private void showCustomDialog(String msgStr){
			try {
				//使用AlterDialog
				LinearLayout view = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.dlg_layout, null);
				final TextView msg = (TextView) view.findViewById(R.id.dlg_msg);
				final TextView cancel = (TextView) view.findViewById(R.id.dlg_cancel);
				final TextView confirm = (TextView) view.findViewById(R.id.dlg_confirm);

				msg.setText(msgStr);
				AlertDialog.Builder builder = new AlertDialog.Builder(context);
				final AlertDialog dialog = builder.create();
				dialog.setCancelable(false);
				dialog.setCanceledOnTouchOutside(false);
				dialog.show();

				Window window = dialog.getWindow();
				//设置显示位置
				WindowManager.LayoutParams lp = window.getAttributes();
				//不设置lp.width 和lp.height,对话框大小由布局决定
//				lp.width = 525; //大小
//				lp.height =330;

				//自定义位置
				lp.x = 30; 
				lp.y = 30;
				lp.gravity = Gravity.LEFT | Gravity.TOP;//不设置这个时,lp.x和lp.y无效
				
			    //window.setGravity(Gravity.CENTER);//居中显示
				window.setAttributes(lp);
				window.setContentView(view);


				final Dialog dialog2 = dialog;
				cancel.setOnClickListener(new View.OnClickListener() {
					@Override
					public void onClick(View v) {
						try {
							if(dialog2 != null){
								dialog2.dismiss();
							}
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
				confirm.setOnClickListener(new View.OnClickListener() {
					public void onClick(View arg0) {
						try{
							Toast.makeText(DownLoadActivity.this, "确认", Toast.LENGTH_SHORT).show();
							if(dialog2 != null){
								dialog2.dismiss();
							}
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
lp.x的英文注释:		
X position for this window. With the default gravity it is ignored. When using Gravity.LEFT or Gravity.START or Gravity.RIGHT or Gravity.END it provides an offset from the given edge
由With the default gravity it is ignored可知,当使用对话框默认的Gravity时,lp.x和lp.y设置了也无效。		
注意:lp.x与lp.y表示相对于原始位置的偏移.
          当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
          当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
          当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
          当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
          当参数值包含Gravity.CENTER_HORIZONTAL时,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
          当参数值包含Gravity.CENTER_VERTICAL时,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
          gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL.
          
        

Android指定位置和大小的自定义dialog Android指定位置和大小的自定义dialog,亲测有效。源码放送 立即下载

相关推荐

自定义Dialog样式+大小+位置

自定义Dialog样式+大小+位置

设置activity为手机屏幕宽和高的方法

DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightP

EASYGOOO的专栏 2448

自定义Toast的显示内容和显示位置

 Android中定义了一个Toast对象,用以弹出一个窗口来给予用户帮助和提示,和对话框不同的是,Toast并不是以独占方式显示的,它并不会抢夺用户的焦点,在弹出Toast的时候,依然可以对之前的界面进行操作,我们在“”一文中介绍了纯文本的Toast的使用,我们完全可以自定义Toast的显示内容和显示位置   要自定义一个Toast也很简单,同样需要创建一个Toast对象,然后实现相应的方法即可

android自定义dialog宽度,Android编程自定义对话框(Dialog)位置及大小的方法

本文实例讲述了Android编程自定义对话框(Dialog)位置及大小的方法。分享给大家供大家参考,具体如下:代码:package angel.devil;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.Gravity;import android....

weixin_32281549的博客 1217

Android编程自定义对话框(Dialog)位置及大小的方法

主要介绍了Android编程自定义对话框(Dialog)位置及大小的方法,涉及Android对话框的定义、功能、属性及布局相关操作技巧,需要的朋友可以参考下

NDVI空间分布变化Slope趋势分析与F检验(自用)

1.NDVI数据预处理2.一元线性回归分析3.Slope趋势分析与F检验

什么都学亿点点的博客 9017

Android自定义对话框的大小

在Android做界面时要弹出对话框让用户输入内容,经常遇到开始的时候没有内容对话框一点点,看起来很别扭,查了下资料,修改对话框的WindowManager.LayoutParams可以达到修改对话框大小的目的。 从Dialog继承一个自定义对话框类,在其构造函数中加上如下

Android For Java 677

CentOS7无网环境实战:MySQL8.0完整离线安装与避坑指南(附依赖包下载)

本文详细介绍了在CentOS7无网环境下MySQL8.0的完整离线安装流程,包括依赖包获取、系统预处理、MySQL二进制安装、服务配置与优化等关键步骤。特别针对离线安装的特殊需求,提供了从依赖包下载到服务调优的全链路解决方案,帮助用户在企业内网或隔离环境中高效部署MySQL数据库。

bush的博客 175

android自定义对话框大小,android-具有动画更改的自定义进度对话框的大小

当应用程序开发开始时,我会创建一个带有动画的自定义进度对话框.但是在进一步的开发中,我更改了该应用程序中的某些主题.但是此进度条的代码未更改.但是现在该进度对话框没有显示所需的宽度和高度.是主题效果的任何更改(对话框视图的宽度和高度).MainActivity的主题是-falsetrue对于AuthActivity和Splash是truefalsetrue@null用于进度对话的主题是-@null...

weixin_39928102的博客 171

手把手教你用树莓派蓝牙抓取小米温湿度计2代数据,接入HomeAssistant(附密钥获取避坑指南)

本文详细介绍了如何通过树莓派蓝牙抓取小米温湿度计2代数据并接入HomeAssistant的完整流程。重点解析了获取32位加密密钥的三种方法,包括使用Telink Flasher工具、米家APP抓包和开源工具ATC_MiThermometer,并提供了HomeAssistant集成配置和常见问题排查指南,帮助用户实现稳定可靠的温湿度监测。

一名菜鸟攻城师 779

告别枯燥的Unity编辑器脚本:Odin插件如何让游戏数据配置变得像搭积木一样简单?

本文详细介绍了Odin插件如何简化Unity编辑器脚本开发,使游戏数据配置变得直观高效。通过声明式特性和丰富的可视化工具,Odin让开发者告别繁琐的OnGUI代码,实现所见即所得的开发体验。文章重点展示了Odin的核心优势、魔法特性及实战案例,帮助Unity开发者提升工作效率。

weixin_28717411的博客 345

【Android】安卓开发实战之自定义对话框位置、大小、颜色、形状

首先来看一下效果: 下面来看一下实现方法: 1、首先要新建一个dailog_group_layout.xml文件,因为对话框需要绑定一个布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:l

Hy的博客 1125

保姆级教程:用PCAN-View监控汽车CAN总线,从硬件连接到报文分析(附快捷键大全)

本文提供了一份详细的PCAN-View使用教程,涵盖从硬件连接到报文分析的全流程,特别适合汽车电子工程师和初学者。内容包括硬件准备、软件安装、核心功能操作、高级技巧及故障排查,并附有实用的快捷键大全,帮助用户高效监控和分析CAN总线数据。

weixin_42542669的博客 497

android 设置对话框的高度,使用设置自定义对话框的大小,位置,样式以及设置在安卓桌面上弹出对话框...

第一步:创建对话框MyDialog mydlg=new MyDialog(context);第二步:获取对话框的window实例,通过window实例来控制对话框出现的位置,大小和弹出时候的场景Window dlgwindow=mydly.getWindow();设置对话框最终显示位置dlgWindow.setGravity(Gravity.TOP);参数可以是Gravity.TOP(顶部),Gr...

weixin_39965490的博客 984

TPAMI 2024 | 面向大型城市场景的快速建筑实例代理重建

大规模城市场景(特别是建筑物)的数字化是一个长期存在的开放问题,这归因于数据获取方面的挑战,如场景覆盖不完整、缺乏语义、规划路径的效率和可靠性低。在本文中,我们针对从航拍图像中重建城市建筑的问题,提出了一个有效的工作流程和一些新颖的算法,用于大型城市场景中高效的3D建筑实例代理重建。具体来说,我们提出了一种基于学习的新型方法,用于从航拍图像中进行城市建筑的实例分割,然后通过基于投票的算法将多视图实例信息融合到稀疏点云中(使用标准结构从运动管道重建)。我们的方法实现了从点云中对建筑实例进行有效的实例分割。

小白学视觉 322

雷达方程从零开始的详细推导及实现

通过以上六步,我们从最基本的物理图像出发,完整地推导出了雷达方程。初学者可以按照这个逻辑,自己在纸上一步步重现整个过程。Python实现。

VectorShift的博客 336

android 自定义时间对话框,Android编程自定义对话框(Dialog)位置及大小的方法

本文实例讲述了Android编程自定义对话框(Dialog)位置及大小的方法。分享给大家供大家参考,具体如下:代码:package angel.devil;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.Gravity;import android....

weixin_34554800的博客 201

使用 MATLAB/Simulink + Simscape Electrical 构建一个他励直流电机的启动与制动过程仿真模型

直流电机在工业控制、电动车辆、自动化设备中广泛应用。其中,他励直流电机(Separately Excited DC Motor)因其励磁绕组与电枢绕组分别供电,具有良好的调速性能和启动特性,常用于需要平稳启动和精确控制的场合。在实际应用中,电机的启动过程和制动过程对电网、机械系统以及电机本身都具有重要影响。因此,仿真分析他励直流电机的启动与制动特性,是电机控制设计的重要环节。本文将详细介绍如何使用构建一个他励直流电机的启动与制动过程仿真模型,并通过仿真分析其动态响应。本文详细介绍了如何使用构建一个。

amy_mhd的博客 231

Android自定义对话框(Dialog)位置,大小

代码: package angel.devil; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.view.Gravity; import android.view.Window; import android.view.WindowMan

little by little的专栏 1341

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 自定义对话框(控制大小、位置)

一、自定义dialog继承自Dialog,在onCreate()方法中填下如下代码控制大小 DisplayMetrics dm = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(dm); LayoutParams p = getWindow().getAttributes(); /

厚积而薄发,谋定而后动 1177

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Android Sqlite数据库的升级(二)
下一篇: ImageButton和Button不设置点击事件也会拦截父View的点击事件
安卓鸟
博客等级 码龄15年 14粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值