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

原创 2016年08月31日 14:21:49

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


		//自定义对话框
		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 对话框弹出位置和透明度的设置

在Android中我们经常会用AlertDialog来显示对话框。通过这个对话框是显示在屏幕中心的。但在某些程序中,要求对话框可以显示在不同的位置。例如,屏幕的上方或下方。要实现这种效果。就需要获得对...
  • csh159
  • csh159
  • 2012-10-30 11:02
  • 7052

android 之popupWindow 在指定位置上的显示

这篇文章主要介绍了popupWindow 在控件的各个方向上的显示(上、下、左、右),主要用到popupWindow 的showAtLocation()方法: 在控件的上方: private ...
  • DXJ007
  • DXJ007
  • 2012-09-27 22:27
  • 149226

android中改变dialog的显示的位置和大小

private void setDialogSize(Dialog dg) { Window dialogWindow = dg.getWindow(); WindowManager.Layo...

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

代码: package angel.devil;import android.app.Activity;import android.app.Dialog;import android.os...

Android自定义Dialog大小控制

Android应用开发中,无论是出于功能还是增加用户体验,弹出对话框(Dialog)进行一些操作提示是非常必要的。Android系统有自带的各种样式的对话框,但是根据项目需要可能从效果上满足不了需求,...

自定义布局对话框的使用(Dialog)

1、对话框在平时比较常用,实现起来也比较简单。下面是自定义布局对话框的代码: public void showDialog(){ AlertDialog.Builder builder = n...

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

package angel.devil; import android.app.Activity; import android.app.Dialog; import android.os....

Android 自定义对话框,可设置大小和显示位置,并设置点击其他位置不消失

先看效果图: 上图中的对话框宽度是根据屏幕宽度按比例设定的,高度是根据内容自动调整的,位置是距离屏幕顶端一定比例距离。 主要代码: public class CustomDialog extend...

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

一、自定义dialog继承自Dialog,在onCreate()方法中填下如下代码控制大小 DisplayMetrics dm = new DisplayMetrics(); context.getW...

android中的提示框:Dialog以及改变Dialog的显示位置

提示框(Dialog)在手机APP中,是必不可少的,比如设置些简单的属性、进度提醒等。就提示框(Dialog)而言,可以用两种方式:①、用android自带的类去实现;②、按自己的需要建一个xml作为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)