Android--WindowManager

    ·获取WindowManager方法有两种:

1. 在Activity里getWindowManager();

2. 在Activity里getSystemService(Contex.WINDOW_SERVICE);
    

    Android应用程序是一个Activity组成的,一个Activity的显示由一个或多个View组成。一般显示界面一般是使用Activity、Dialog、Toast。

    Android的窗口机制是基于WindowManager,它是一个接口,这个接口可以添加View到屏幕,也可以从屏幕删除VIew。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog。其实Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,单例。

    以下是抄的一两个用法:

WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);   
Button view = new Button(this);   
view.setText("window manager test!");   
WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();   
mWm.addView(view, mParams);//添加VIew到屏幕显示
//改变Dialog背景透明度  
Dialog dg = new Dialog(this);  
Window window = dg.getWindow();  
WindowManager.LayoutParams lp = window.getAttributes();  
lp.alpha = 0.5f;  
window.setAttributes(lp);  
//lp.alpha = 0.5f 透明度设置 其值要合理 自己反复测试  
//为什么要这个技巧 因为很多人说:弹出Dialog会导致背景变暗 有Animation发生 导致性能变慢 可以用这个改变之 而且可以借助这个 使得全透明 //不挡住Dialog后面内容的显示  
//获取屏幕宽和高
width = activity.getWindowManager().getDefaultDisplay().getWidth();   
height = activity.getWindowManager().getDefaultDisplay().getHeight(); 


    Windowmanager implements ViewManager

   共有三个内部类,两个方法:


    借助WindowManager和它的内部类WindowManager.Layoutparams可以实现很多效果,如像一些安全卫士小图标那样浮在程序上。http://gundumw100.iteye.com/blog/899977】【 http://tech.ddvip.com/2013-09/1379852696203072.html

    关于Display类:public final class Display extends Object


    太懒不想翻译,大意是提供尺寸(size)和密度(density)等信息。显示区域包含两种描述:第一种是小于真实屏幕显示区域(即不包含status bar之类的),另一种是包含所有的。    

    相关的两个类一是Point:public class Point extends object implements Parelable。就两个属性x和y。有反转和偏移等方法。

    另一个类是DisplayMetrics:public class extend Object。A structure describing general information about a display, such as its size, density, and font scaling.获取方法是:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
    这个类方法没什么,但属性很有用。用于获取密度,像素,dpi等信息。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值