android get set,android getWindow().setFlags的使用

本文详细介绍了Android中getWindow().setFlags的使用方法,包括设置全屏、保持屏幕常亮和背景模糊等。通过WindowManager.LayoutParams的flag系列常量,可以控制窗口的各种行为,如全屏显示、屏幕常亮、背景模糊等,同时列举了多个常用flag的含义和使用方式,帮助开发者更好地理解和应用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

释放双眼,带上耳机,听听看~!

今天,简单讲讲android getWindow().setFlags的使用。

这个很简单。

//设置窗体全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//设置窗体始终点亮

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,

WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

//设置窗体背景模糊

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,

WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

这几个是比较常用的,接下来具体介绍一下:

public static class

WindowManager.LayoutParams

WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;它继承于 ViewGroup.LayoutParams; 它用于向WindowManager描述Window的管理策略。

主要成员常量

Window flag系列

该系列主要用于对Window的flag进行设置。设置Window的flag,可以直接对Window的getAttributes()得到其 WindowManager.LayoutParams对象,然后直接对它flag变量操作。也可以Window的addFlags(int flags)方法,setFlags(int flags, int mask)方法,clearFlags(int flags)方法进行操作。

比如设置全屏:

Window window = getWindow();

WindowManager.LayoutParams winParams = win.getAttributes();

winParams.flags=winParams.flags|WindowManager.LayoutParams.FLAG_FULLSCREEN;

window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

取消全屏

Window window = getWindow();

winParams.flags=winParams.flags&~WindowManager.LayoutParams.FLAG_FULLSCREEN;

window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

window.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);

所有Window flag如下:

int

用于表示flags发生了变化,关于此的详细内容请看后文。

int

Window flag: as long as this window is visible to the user, allow the lock screen to activate while the screen is on.

当该window对用户可见的时候,允许锁屏。

int

Window flag: invert the state of

int

Window flag: blur everything behind this window.

让该window后所有东西都模糊(blur)

int

Window flag: everything behind this window will be dimmed.

让该window后所有的东西都成暗淡(dim)

int

Window flag: when set the window will cause the keyguard to be dismissed,

only if it is not a secure lock keyguard.

int

Window flag: turn on dithering when compositing this window to the screen.

开启抖动(dithering)

int

Window flag: Override {@link #FLAG_FULLSCREEN and force the screen decorations (such as status bar) to be shown.

恢复window非全屏显示

int

Window flag: Hide all screen decorations (e.g.

让window进行全屏显示

int

Indicates whether this window should be hardware accelerated.

对该window进行硬件加速.

该flag必须在设置你的Activity或Dialog的Content View之前进行设置,

而且如果你在mainfest文件中用Android:hardwareAccelerated开启了该属性的话,那么你在程序中就不能再改变它。mainfest文件中android:hardwareAccelerated属性默认是开启的(“true”)。

int

Window flag: intended for windows that will often be used when the user is holding the screen against their face, it will aggressively filter the event stream to prevent unintended presses in this situation that may not be desired for a particular window, when

such an event stream is detected, the application will receive a CANCEL motion event to indicate this so applications can handle this accordingly by taking no action on the event until the finger is released.

int

Window flag: as long as this window is visible to the user, keep the device’s screen turned on and bright.

当该window对用户可见时,让设备屏幕处于高亮(bright)状态。

int

Window flag: a special option only for use in combination with

int

Window flag: place the window within the entire screen, ignoring decorations around the border (a.k.a.

让window占满整个手机屏幕,不留任何边界(border)

int

Window flag: allow window to extend outside of the screen.

window大小不再不受手机屏幕大小限制,即window可能超出屏幕之外,这时部分内容在屏幕之外。

int

Window flag: this window won’t ever get key input focus, so the user can not send key or other button events to it.

让window不能获得焦点,这样用户快就不能向该window发送按键事件及按钮事件

int

Window flag: this window can never receive touch events.

让该window不接受触摸屏事件

int

Window flag: Even when this window is focusable (its {@link #FLAG_NOT_FOCUSABLE is not set),

allow any pointer events outside of the window to be sent to the windows behind it.

即使在该window在可获得焦点情况下,仍然把该window之外的任何event发送到该window之后的其他window.

int

Window flag: a special mode where the layout parameters are used to perform scaling of the surface when it is composited to the screen.

int

Window flag: don’t allow screen shots while this window is displayed.

当该window在进行显示的时候,不允许截屏。

int

Window flag: ask that the system wallpaper be shown behind your window.

在该window后显示系统的墙纸(wallpaper)

int

Window flag: special flag to let windows be shown when the screen is locked.

当锁屏的时候,显示该window.

int

Window flag: when set the window will accept for touch events outside of its bounds to be sent to other windows that also support split touch. When this flag is not set, the first pointer that goes down determines the window to which all subsequent touches

go until all pointers go up. When this flag is set, each pointer (not necessarily the first) that goes down determines the window to which all subsequent touches of that pointer will go until that pointer goes up thereby enabling touches with multiple pointers

to be split across multiple windows

当该window在可以接受触摸屏情况下,让因在该window之外,而发送到后面的window的触摸屏可以支持split

touch.

int

Window flag: When set, if the device is asleep when the touch screen is pressed, you will receive this first touch event.

当手机处于睡眠状态时,如果屏幕被按下,那么该window将第一个收到到事件

int

Window flag: when set as a window is being added or made visible, once the window has been shown then the system will poke the power manager’s user activity (as if the user had woken up the device) to turn the screen on.

当然window被显示的时候,系统将把它当做一个用户活动事件,以点亮手机屏幕。

int

Window flag: if you have set

android getWindow().setFlags的使用就讲完了。

就这么简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值