设置安卓对话框的位置

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.WindowManager;

public class DialogDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);

        Dialog dialog = new Dialog(this);

        // setContentView可以设置为一个View也可以简单地指定资源ID        // LayoutInflater        // li=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);        // View v=li.inflate(R.layout.dialog_layout, null);        // dialog.setContentView(v);        dialog.setContentView(R.layout.dialog_layout);

        dialog.setTitle("Custom Dialog");

        /*          * 获取圣诞框的窗口对象及参数对象以修改对话框的布局设置,         * 可以直接调用getWindow(),表示获得这个Activity的Window         * 对象,这样这可以以同样的方式改变这个Activity的属性.         */        Window dialogWindow = dialog.getWindow();        WindowManager.LayoutParams lp = dialogWindow.getAttributes();        dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);

        /*         * 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);

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

        dialog.show();

    }}

布局文件:

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="#00FF00"    android:orientation="vertical" >

    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/hello" />

</LinearLayout>

dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/layout_root"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="horizontal"    android:padding="10dp" >

    <ImageView        android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginRight="10dp"        android:src="@drawable/ic_launcher" />

    <TextView        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="A Dialog"        android:textColor="#FFF" />

</LinearLayout>
时间: 2024-10-10 20:39:05

设置安卓对话框的位置的相关文章

ios动态获得键盘高度,并改变对话框的位置

NSNotificationCenter:键盘出现.消失时的通知 UIKeyboardWillShowNotification;UIKeyboardDidShowNotification;UIKeyboardWillHideNotification;UIKeyboardDidHideNotification; 在要使用键盘的视图控制器中(既viewDidLoad中),接收键盘事件的通知: - (void) registerForKeyboardNotifications{ //键盘改变时候会调用

修改JFileChooser对话框风格,设置打开对话框的默认文件名,获取改变路径之后的文件保存路径

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢? 一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var C

2014-07-25 设置Winform窗体滚动条位置

昨天那个小工具还差最后一步,就是那个图文并茂窗体. 拖几个GroupBox.Label.PictureBox控件,很快就做完了. 因为截图比较大,所以加了滚动条(设置 AutoScroll 属性为 True ). 但是发现一个问题,弹出这个窗体的时候,滚动条总是在最下边囧. 老程序员看了说:“这个没事儿,不用管”. 不过我看着总是感觉不爽,客户体验太差!而且最关键的是,我感觉这个应该很容易解决. 所以,我决定还是再改一下. 于是,我自信而又轻快地敲击键盘,写下了自以为可以轻松搞定这个问题的代码:

设置安卓开机动画、开机logo

我们要改动的是system>media目录下的bootanimation.zip(手机开机动画)这个文件 先来讲讲这个文件结构:该zip解压后得到两个文件, 第一个文件夹存放了开机时播放的图片(图为佳域G3原厂的动画图片包),见下图: 图片编号001,002,.......010这些是用来控制图片播放顺序的 .第二个 desc. txt的文本文档存放的数据和文字用来控制播放图片的速度(帧速)和播放方式,见下图: 下面讲解这些文字数据的含义:720表示图片像素宽为720像素点 1280表示图片高为

tomcat根目录设置 work文件夹位置 temp 文件夹位置

一.TOMCAT 设置TEMP文件夹位置 最近项目有用到freemarker,这样用户体验速度更快 但是问题来了,用freemarker,用nginx负载均衡都没有办法做,因为每次都要通过后台生成新的页面. 下午想了能否指定同样的temp文件夹位置,百度上面找了一下果然有. 方法如下 步骤1:找到tomcat文件夹下面的bin文件夹, 步骤2:编辑catalina.sh文件(LINUX系统版本的)或则catalina.bat文件(WINDOWS版本的) 步骤3:找到CATALINA_TMPDIR

设置安卓设备屏幕方向,平板为横屏,手机为竖屏

http://stackoverflow.com/questions/9627774/android-allow-portrait-and-landscape-for-tablets-but-force-portrait-on-phone Here's a good way using resources and size qualifiers. Put this bool resource in res/values as bools.xml or whatever (file names d

QT按钮背景颜色设置及文字显示位置设置

QPushButton * pQBtn = new QPushButton( cBuff, this ); pQBtn->setStyleSheet("text-align: left;");//设置按钮文字显示位置-左对齐 pQBtn->setStyleSheet("background-color: rgb(255, 128, 64);");//设置按钮背景颜色 pQBtn->setStyleSheet("border-image:

桌面支持--adobe reader设置记录上次阅读位置

adobe reader设置记录上次阅读位置

matplotlib之设置极坐标起点的位置

1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 ############################ 4 #File Name: polar.py 5 #Author: frank 6 #Mail: [email protected] 7 #Created Time:2018-05-22 22:08:01 8 ############################ 9 import matplotlib.pyplot as plt 10