`
bogongjie
  • 浏览: 236032 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android 设置对话框的宽度和高度

阅读更多

方法一:

/* 方法1:
         * 将对话框的大小按屏幕大小的百分比设置
         */
        WindowManager m = getWindowManager();
        Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
        WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的参数值
         p.height = (int) (d.getHeight() * 0.5); // 高度设置为屏幕的0.5
        p.width = (int) (d.getWidth() * 0.8); // 宽度设置为屏幕的0.8
        dialog.show().getWindow().setAttributes(p);

 

方法二:

        /*  方法2:
         * 获取对话框的窗口对象及参数对象以修改对话框的布局设置,
         * 可以直接调用getWindow(),表示获得这个Activity的Window
         * 对象,这样这可以以同样的方式改变这个Activity的属性.
         */
        Window dialogWindow = dialog.show().getWindow();
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
       dialogWindow.setGravity(CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
 
        /*
         * 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.
         * 
         * 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在
         * 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
         * Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离
         */
        lp.x = 100; // 新位置X坐标
        lp.y = 100; // 新位置Y坐标
        lp.width = 300; // 宽度
        lp.height = 300; // 高度
        lp.alpha = 0.7f; // 透明度
 
        // 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
        // dialog.onWindowAttributesChanged(lp);
        dialogWindow.setAttributes(lp);

 

转载:http://blog.csdn.net/shangs2010/article/details/8261254

分享到:
评论

相关推荐

    android自定义对话框加动画

    3. **重写`onCreateDialog()`方法**:在这个方法中,使用`LayoutInflater`来加载我们之前创建的布局文件,并设置对话框的基本属性,如宽度、高度、背景颜色等。 ```java @Override public Dialog onCreateDialog...

    Android自定义对话框Dialog(界面美化)

    2. 修改对话框宽度和高度:通过设置LayoutParams可以更改Dialog的宽度和高度,使其更适应屏幕。 3. 自定义按钮样式:通过设置按钮的背景、文字颜色和字体大小,使其与应用的整体风格保持一致。 4. 动画效果:添加...

    Android普通对话框源码.zip

    7. **对话框的尺寸和位置**:虽然默认对话框会居中显示,但可以通过调整对话框的宽度和高度,或者使用`WindowManager.LayoutParams`来更改其位置。 通过分析这个源码,你可以了解如何根据需求定制对话框的每一个...

    Android 普通对话框源码.zip

    源码可能包含如何设置对话框居中显示或调整其宽度和高度的示例。 9. **异步操作与进度对话框** 当执行耗时操作(如网络请求或文件读写)时,使用进度对话框可以提升用户体验。源码可能会展示如何使用...

    Android例子源码自定义对话框

    2. 实例化Dialog类:在Java或Kotlin代码中,我们需要实例化一个Dialog对象,并设置其属性,如宽度、高度、背景等。例如: ```java Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window....

    Node.js-SearchDialog一个Android搜索对话框库

    1. **在布局文件中添加SearchView**:在XML布局文件中声明SearchView,并设置其属性,如宽度、高度、图标等。 2. **配置SearchView**:通过Java代码或XML布局中的app:queryHint属性设置提示文本,以及设置监听器来...

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

    例如,可以设置对话框的宽度和高度,也可以设置对话框的-margin和-padding。 五、自定义对话框的位置和大小 通过 setGravity() 方法可以设置对话框的位置。例如,可以设置对话框出现在屏幕的左上角、右下角等位置...

    android 自定义对话框.zip

    3. **设置对话框属性**:通过调用Dialog类的方法,可以调整对话框的属性,如宽度、高度、背景颜色、边距等。例如,`setWidth()`和`setHeight()`用于设置对话框的大小,`setCanceledOnTouchOutside()`控制是否允许...

    test5(设置对话框大小)

    对于Bootstrap Modal,我们可以直接在CSS中设置`.modal-dialog`的宽度和高度,或者通过JavaScript的`$('.modal').css('width', '500px')`来动态调整。 移动应用开发方面,Android使用AlertDialog或DialogFragment,...

    Android系统仿iPhone对话框

    // 自定义对话框的其他属性,如宽度、高度、背景等 // ... return dialog; } } ``` 3. **添加按钮事件处理**: 在自定义布局中,为按钮设置点击监听器,以便在用户交互时执行相应的操作。 ```java view....

    android 自定义单选、多选对话框及popwindow窗口实例源码.zip

    3. 创建`PopupWindow`对象,传入加载好的布局视图和宽度、高度。 4. 设置是否允许点击PopWindow外部关闭、背景透明度等属性。 5. 使用`showAtLocation`或`showAsDropDown`方法显示PopWindow。 ```java // 创建布局 ...

    解决Android中自定义DialogFragment解决宽度和高度问题

    针对标题中提到的“解决宽度和高度问题”,当开发者希望对话框具有固定的宽度和高度时,可以在DialogFragment的onResume()方法中设置窗口的尺寸。例如: ```java @Override public void onResume() { super....

    安卓Dialog对话框相关-Android中实现Iphone样式的AlertDialog.zip

    3. 设置对话框的宽度和高度,通常为屏幕的一半或更少,以模仿iOS的紧凑感。 4. 自定义对话框的动画,例如滑入滑出效果,以增强用户体验。 资源包中的JavaApk源码说明.txt可能包含了一些关于如何实现这些自定义效果...

    android 自定义对话框

    // 初始化和设置对话框元素 } } ``` 3. **在Activity中显示对话框**:在需要显示对话框的地方,实例化并显示自定义对话框: ```java CustomDialog customDialog = new CustomDialog(this); customDialog.show();...

    android自定义对话框

    通过重写`onCreate()`方法来加载刚才创建的布局,并设置对话框的其他属性,如背景、宽度、高度等。 3. **设置对话框的回调事件**:在自定义的Dialog类中,我们可以为布局中的控件设置监听器,以便在用户交互时触发...

    android高仿IOS对话框

    我们需要重写`onCreateDialog`方法,在其中设置自定义布局,并配置对话框的其他属性,如宽度、高度、背景透明度等。 3. **事件监听**: 在自定义布局中,为每个按钮添加点击事件监听器。在`DialogFragment`内,...

    创建悬浮对话框和触模任何位置都可以关闭的对话框

    同时,可以设定对话框的宽度、高度和背景透明度。 ```java PopupWindow popupWindow = new PopupWindow( LayoutInflater.from(context).inflate(R.layout.popup_window, null), ViewGroup.LayoutParams.WRAP_...

    自定义单选,多选对话框(android)

    - 可以设置对话框的宽度和高度,以及是否居中显示。 5. **适配不同设备和屏幕尺寸**: - 确保布局是响应式的,能够适应不同屏幕尺寸和密度。 - 使用比例单位(dp、sp)而不是绝对像素,以保证在各种设备上看起来...

    android自定义透明对话框,透明提示框,自定义Dialog

    // 设置其他属性,如宽度、高度等 dialog.show(); ``` 4. **自定义形状和动画** 如果需要更个性化的外观,可以在`drawable`目录下创建一个shape XML文件(如`dialog_shape.xml`),定义对话框的形状(如圆角...

Global site tag (gtag.js) - Google Analytics