代码:

  1. package angel.devil;
  2.  
  3. import android.app.Activity;
  4. import android.app.Dialog;
  5. import android.os.Bundle;
  6. import android.view.Gravity;
  7. import android.view.Window;
  8. import android.view.WindowManager;
  9.  
  10. public class DialogDemoActivity extends Activity {
  11. /** Called when the activity is first created. */
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16.  
  17. Dialog dialog = new Dialog(this);
  18.  
  19. // setContentView可以设置为一个View也可以简单地指定资源ID
  20. // LayoutInflater
  21. // li=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
  22. // View v=li.inflate(R.layout.dialog_layout, null);
  23. // dialog.setContentView(v);
  24. dialog.setContentView(R.layout.dialog_layout);
  25.  
  26. dialog.setTitle("Custom Dialog");
  27.  
  28. /*
  29. * 获取圣诞框的窗口对象及参数对象以修改对话框的布局设置,
  30. * 可以直接调用getWindow(),表示获得这个Activity的Window
  31. * 对象,这样这可以以同样的方式改变这个Activity的属性.
  32. */
  33. Window dialogWindow = dialog.getWindow();
  34. WindowManager.LayoutParams lp = dialogWindow.getAttributes();
  35. dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
  36.  
  37. /*
  38. * lp.x与lp.y表示相对于原始位置的偏移.
  39. * 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
  40. * 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
  41. * 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
  42. * 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
  43. * 当参数值包含Gravity.CENTER_HORIZONTAL时
  44. * ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
  45. * 当参数值包含Gravity.CENTER_VERTICAL时
  46. * ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
  47. * gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL |
  48. * Gravity.CENTER_VERTICAL.
  49. *
  50. * 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在
  51. * 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了,
  52. * Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离
  53. */
  54. lp.x = ; // 新位置X坐标
  55. lp.y = ; // 新位置Y坐标
  56. lp.width = ; // 宽度
  57. lp.height = ; // 高度
  58. lp.alpha = 0.7f; // 透明度
  59.  
  60. // 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes
  61. // dialog.onWindowAttributesChanged(lp);
  62. dialogWindow.setAttributes(lp);
  63.  
  64. /*
  65. * 将对话框的大小按屏幕大小的百分比设置
  66. */
  67. // WindowManager m = getWindowManager();
  68. // Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
  69. // WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
  70. // p.height = (int) (d.getHeight() * 0.6); // 高度设置为屏幕的0.6
  71. // p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.65
  72. // dialogWindow.setAttributes(p);
  73.  
  74. dialog.show();
  75.  
  76. }
  77. }

布局文件:

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:background="#00FF00"
  6. android:orientation="vertical" >
  7.  
  8. <TextView
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. android:text="@string/hello" />
  12.  
  13. </LinearLayout>

dialog_layout.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/layout_root"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:orientation="horizontal"
  7. android:padding="10dp" >
  8.  
  9. <ImageView
  10. android:id="@+id/image"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:layout_marginRight="10dp"
  14. android:src="@drawable/ic_launcher" />
  15.  
  16. <TextView
  17. android:id="@+id/text"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="A Dialog"
  21. android:textColor="#FFF" />
  22.  
  23. </LinearLayout>

Android 自定义对话框(Dialog)位置,大小的更多相关文章

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

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

  2. Android自定义对话框

    在android中有自带的对话框,为了美观,很多开发者会使用自定义对话框,如下图: 点击“弹出自定义对话框按钮后”显示如图效果. 首先要自己定义一个xml文件定义自己对话框的样式: <?xml ...

  3. 关于JFace的自定义对话框(Dialog类)

    仅仅是使用MessageDialog,InputDialog等JFace中现成的对话框类是无法满足实际项目开发需要的. 很多时候都需要自己定制对话框,自定义对话框只要在Dialog类的基础上作扩展就行 ...

  4. Android 常用对话框Dialog封装

    Android 6种 常用对话框Dialog封装 包括: 消息对话框.警示(含确认.取消)对话框.单选对话框. 复选对话框.列表对话框.自定义视图(含确认.取消)对话框 分别如下图所示:       ...

  5. Android自定义组件系列【13】——Android自定义对话框如此简单

    在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按 ...

  6. Android 自定义对话框

    Android实现自定义对话框效果: 核心代码: package com.example.diydialog; import android.os.Bundle; import android.app ...

  7. 95秀-自定义对话框 dialog 合集

    普通的确认对话框 NormalDialog.java import android.app.Dialog; import android.content.Context; import android ...

  8. android 开发 对话框Dialog详解

    转载请注明出处:红亮的专栏:http://blog.csdn.net/liang5630/article/details/44098899 Android中的对话框形式大致可分为五种:分别是一般对话框 ...

  9. Android 自定义对话框使用静态Handler传递参数

    JsdMainDialog.java package com.jsd.demo; import android.app.Activity; import android.content.Context ...

随机推荐

  1. 查看Unix系统是32位还是64位

    #getconf查看OS位数 以下经过测试了HP: getconf KERNEL_BITSLinux: getconf LONG_BITAIX: getconf KERNEL_BITMODE #AIX ...

  2. 9月18日,SQL学习基础1

    数据库管理和应用 Oltp是小型的管理,OLAP是大型的管理 开发的内容如触发器 数据库管理系统(Database Management System,简称为DBMS)是位于用户与操作系统之间的一层数 ...

  3. 【html】【12】特效篇--轮播图

    必看参考: http://www.runoob.com/bootstrap/bootstrap-carousel-plugin.html 代码: <!DOCTYPE html> <h ...

  4. C#微信开发之旅--准备阶段

    最近才开始学微信开发的相关内容,记录下,慢慢的养成习惯! 1.申请公众号: 公众号分为 订阅号 和 服务号.他们之前的区别可以点击这里查看 因为我们是测试的,所以可以直接申请测试帐号,就把所有的功能都 ...

  5. Java实战之02Hibernate-03Session中的常用方法

    九.Session中的常用方法 1.save方法 都是临时态————>持久态 2.persist方法 作用: 持久化临时态对象. 与save方法的区别: 开始了事务:persist和save没有 ...

  6. SQL SERVER删除列,报错."由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ... 失败"

    队友给我修改数据的语句.总是执行失败.很纳闷. 如下图: 仔细看了下这个列,并没有什么特殊.如下图: 但其确实有个约束: 'DF__HIS_DRUG___ALL_I__04E4BC85' . 为什么有 ...

  7. PHPEXCEL使用实例

    最近在项目中要用到PHP生成EXCEL,上网找了一下,发现PHPEXCEL挺不错,用了一下,感觉还行,就是设置单元格格式的时候比较麻烦,总体来说功能还是比较强大的,还有生成PDF什么的,发一个实例吧 ...

  8. php header示例代码(推荐)

    <?php /*** Function: PHP header() examples (PHP) ** Desc: Some examples on how to use the header( ...

  9. ubuntu下编译安装PHP

    首先配置configure // ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --wit ...

  10. C# 解析带前缀的Xml节点内容

    一般的xml文件相信大家都会解析了,但是遇到有命名空间的带前缀的xml,对于新手可能会有点问题.我这里在论坛解答的时候就遇到过一题,见怎么获取XML节点里面的内容,在线求教.这里给大家演示一下. 他的 ...