如果有需要要将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

最新文章

  1. Javascript设计模式学习三(策略模式)
  2. 2013/10/24初学BOOST
  3. URL中的特殊字符
  4. C#设计模式(3):抽象工厂模式(Abstract Factory)(转载)
  5. SpringMVC3.2+JPA使用注解的方式环境搭建
  6. Java同步块(synchronized block)使用详解
  7. PLSQL Developer操作
  8. 模板--&gt;扩展欧几里得
  9. ubuntu 创建eclipse 快捷方式
  10. 正式学习react(二)
  11. Java &quot;==和equals区别&quot;
  12. Javascript关闭详细说明
  13. jQuery的入门与简介
  14. 内存数据网格IMDG简介
  15. easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)
  16. 图解:window与BOM的关系
  17. prop与attr
  18. 自然语言处理之关键词提取TF-IDF
  19. 一个非常适合IT团队的在线API文档、技术文档工具 (ShowDoc)
  20. RxJava中的doOnSubscribe默认运行线程分析

热门文章

  1. GoDaddy Linux主机支持机房的更换
  2. .NET轻量级ORM组件Dapper葵花宝典
  3. 算法竞赛入门经典+挑战编程+USACO
  4. 清除数据库表、外键、存储过程SQL
  5. Windows 和 Linux 平台下的端口转发工具
  6. Objective-C内存布局
  7. 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)
  8. 【Devops】【docker】【CI/CD】Jenkins源码管理,设置gitlab上项目的clone地址 + jenkins构建报错:Please make sure you have the correct access rights and the repository exists.
  9. 《王者荣耀》技术总监复盘回炉历程:没跨过这三座大山,就是另一款MOBA霸占市场了
  10. 深入浅出!从语义角度分析隐藏在Unity协程背后的原理