Activity设置为对话框属性时(Theme.Dialog)时,改变其在屏幕中的位置
如果有需要要将Activity变成一个窗口形式(在Manifest.xml中的activity标签设置android:theme="@android:style/Theme.Dialog" 属性),默认Activity窗口弹出是在屏幕的正中央。通过覆写Activity中onAttachedToWindow()方法,在期中将DecorView的参数重设一下就可以指定其显示的位置了。
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow(); View view = getWindow().getDecorView();
WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();
lp.gravity = Gravity.LEFT | Gravity.TOP;
lp.x = 10;
lp.y = 10;
lp.width = 300;
lp.height = 300;
getWindowManager().updateViewLayout(view, lp);
}
lp.x , lp.y , lp.width ,lp.height的具体值可以定义到res/values/dimens.xml中,方便以后修改。
@Override
public void onAttachedToWindow() {
// 设置本Activity在父窗口的位置super.onAttachedToWindow();
View view = getWindow().getDecorView();
WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view
.getLayoutParams();
lp.gravity = Gravity.RIGHT | Gravity.BOTTOM;
lp.x = getResources().getDimensionPixelSize(
R.dimen.playqueue_dialog_marginright);
lp.y = getResources().getDimensionPixelSize(
R.dimen.playqueue_dialog_marginbottom);
lp.width = getResources().getDimensionPixelSize(
R.dimen.playqueue_dialog_width);
lp.height = getResources().getDimensionPixelSize(
R.dimen.playqueue_dialog_height);
getWindowManager().updateViewLayout(view, lp);
}
<resources>
<dimen name="playqueue_dialog_marginright">0dp</dimen>
<dimen name="playqueue_dialog_marginbottom">60dp</dimen>
<dimen name="playqueue_dialog_width">250dp</dimen>
<dimen name="playqueue_dialog_height">380dp</dimen>
<dimen name="playqueue_dialog_select_item_from_top">90dp</dimen>
</resources>
来源:http://www.cnblogs.com/lqstayreal/archive/2013/05/21/3091427.html
Activity设置为对话框属性时(Theme.Dialog)时,改变其在屏幕中的位置的更多相关文章
- 将Activity设置成半透明的对话框
将Activity设置成半透明的对话框 在定义Activity时指定Theme.Dialog主题就可以将Activity设置成对话框风格.通过修饰Theme.Dialog主题的android:wind ...
- jQuery学习笔记(4)-设置元素的属性和样式
一.前言 本篇主要讲解如何使用jQuery获取和操作元素的属性和css样式 二."DOM属性"与元素属性 1.运行一下代码 <img src="/images/lo ...
- 给Activity设置Dialog属性,点击区域外消失;
1.在AndroidManifest.xml中给Activity设置样式: <activity android:name=".MyActivity" ...
- Activity设置全屏显示的两种方式及系统自带theme属性解析
转载说明:原贴地址:http://blog.csdn.net/a_running_wolf/article/details/50480386 设置Activity隐藏标题栏.设置Activity全屏显 ...
- Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法
新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...
- Android项目实战(七):Dialog主题Activity实现自定义对话框效果
想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大 ...
- java 反射: 当Timestamp类型的属性值为null时,设置默认值
import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...
- Android studio使用android:style/Theme.Dialog报错:You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
查找原因是在activity java代码部分继承了compatactivity public class DialogActivity extends AppCompatActivity 但是在An ...
- 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值
$(function () { var wait = $("<img src=\"\" alt=\"正在上传\"/>"); $( ...
随机推荐
- DOM对象之document对象
DOM对象:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. 打开网页后,首先看到的是浏览器窗口,即顶层的win ...
- [Win32]获取指定进程的父进程PID
// // #include <Windows.h> #include <winnt.h> #include <winternl.h> typedef NTSTAT ...
- 从零开始,运行一个android例子程序
电脑上连个eclipse都没装,怎么玩android?一穷二白的你, 下面就跟随我,从零开始,一步一步操作,运行我们的第一个android应用程序.我一直相信,学习开发,只有在调试过程中学的是最快的. ...
- DroidGap
import com.phonegap.DroidGap; import android.app.Activity; import android.os.Bundle; p ...
- Shell 命令行快捷键
在shell命令终端中.Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键. 在命令终端中通过它们或者方向键能够实现对历史命令的高速查找.这也是高速输入命令的技巧. 在命令终端中能 ...
- Monitoring an IBM JVM with VisualVM
Monitoring an IBM JVM with VisualVM 分类: Java 2013-06-09 16:15 250人阅读 评论(0) 收藏 举报 JDK6 update 7 and o ...
- 同一个账号启动两个resin而要求使用不同jdk的解决方法
天,一个老同事问起这样一个问题,起因是他们的系统由于某些原因原有的部分模块不能运行在新的jdk下,所以需要启动两个resin并使用不同jdk.由 于是要开机自动启动,因此启动的账号还需要是同一个.这样 ...
- SharePoint JavaScript API in application pages
前言 最近,在SharePoint 应用程序页中写JavaScript API,进行一些数据交互.其实,很简单的事情却遇到了问题,记录一下,希望能对遇到类似问题的人以帮助. 引用JavaScript ...
- 常用工具类系列之DateUtil
Date.long.Calendar之间的相互转换 //当前时间 Date date = DateUtil.date(); //当前时间 Date date2 = DateUtil.date(Cale ...
- SQLSERVER系统视图 sql server系统表详细说明
参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...