public int x;
public int y;
如果忽略gravity属性,那么它表示窗口的x/y绝对位置。当设置了Gravity.LEFT或Gravity.RIGHT之后,x/y值就表示到特定边的距离。
float horizontalWeight float erticalWeight
表示在水平或垂直方向上有多少空间可以放大拉伸的,如果定义0则不能拉伸,其它值则会按比例均给所有的Views。
public int type;
窗口类型:有3种主要类型
Applicationwindows:取值在 FIRST_APPLICATION_WINDOW和LAST_APPLICATION_WINDOW 之间。
是通常的、顶层的应用程序窗口,必须将token设置成activity的token。
Sub_windows:取值在 FIRST_SUB_WINDOW和 LAST_SUB_WINDOW 之间。
与顶层窗口相关联,token必须设置为它所附着的宿主窗口的token。
Systemwindows:取值在 FIRST_SYSTEM_WINDOW和 LAST_SYSTEM_WINDOW 之间。
用于特定的系统功能。它不能用于应用程序,使用时需要特殊权限。
Applicaitonwindows:
public static final int FIRST_APPLICATION_WINDOW = 1; 应用程序窗口
public static final int TYPE_BASE_APPLICATION = 1; 所有应用基本的应用窗口,所有的其它应用窗口都必须出现在它上面
public static final int TYPE_APPLICATION = 2; 普通应用程序窗口。token必须设置为Activity的token,以指出该窗口属谁
public static final int TYPE_APPLICATION_STARTING = 3;应用启动的特定应用窗口,由系统来使用直到应用显示它自己的窗口
public static final int LAST_APPLICATION_WINDOW = 99; 应用结束窗口
sub_window:
public static final int FIRST_SUB_WINDOW = 1000; 子窗口。子窗口的Z序和坐标空间都依赖于他们的宿主窗口。
public static final int TYPE_APPLICATION_PANEL = FIRST_SUB_WINDOW; 面板窗口,显示于宿主窗口上层。
public static final int TYPE_APPLICATION_MEDIA = FIRST_SUB_WINDOW+1; 媒体窗口,例如视频。显示于宿主窗口下层。
public static final int TYPE_APPLICATION_SUB_PANEL = FIRST_SUB_WINDOW+2; 应用程序窗口的子面板。显示于所有面板窗口的上层。(GUI的一般规律,越“子”越靠上)
public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW+3; 对话框。类似于面板窗口,绘制类似于顶层窗口,而不是宿主的子窗口。
public static final int TYPE_APPLICATION_MEDIA_OVERLAY = FIRST_SUB_WINDOW+4; 媒体信息。显示在媒体层和程序窗口之间,需要实现透明(半透明)效果。(如显示字幕)
public static final int LAST_SUB_WINDOW = 1999; 子窗口结束窗口。
systemwindow:
public static final int FIRST_SYSTEM_WINDOW = 2000; 系统窗口。非应用程序创建。
public static final int TYPE_STATUS_BAR =FIRST_SYSTEM_WINDOW; 状态栏。只能有一个状态栏;它位于屏幕顶端,其他窗口都位于它下方。
public staticfinal int TYPE_SEARCH_BAR =FIRST_SYSTEM_WINDOW+1; 搜索栏。只能有一个搜索栏;它位于屏幕上方。
public staticfinal int TYPE_PHONE =FIRST_SYSTEM_WINDOW+2; 电话窗口。它用于电话交互(特别是呼入)。它置于所有应用程序之上,状态栏之下。
public staticfinal int TYPE_SYSTEM_ALERT = FIRST_SYSTEM_WINDOW+3; 系统提示。它总是出现在应用程序窗口之上。
public staticfinal int TYPE_KEYGUARD =FIRST_SYSTEM_WINDOW+4; 锁屏窗口。
public staticfinal int TYPE_TOAST =FIRST_SYSTEM_WINDOW+5; 信息窗口。用于显示toast。
public staticfinal int TYPE_SYSTEM_OVERLAY = FIRST_SYSTEM_WINDOW+6; 系统顶层窗口。显示在其他一切内容之上。此窗口不能获得输入焦点,否则影响锁屏。
public staticfinal int TYPE_PRIORITY_PHONE = FIRST_SYSTEM_WINDOW+7; 电话优先,当锁屏时显示。此窗口不能获得输入焦点,否则影响锁屏。
public staticfinal int TYPE_SYSTEM_DIALOG = FIRST_SYSTEM_WINDOW+8; 系统对话框。(例如音量调节框)。
public staticfinal int TYPE_KEYGUARD_DIALOG = FIRST_SYSTEM_WINDOW+9; 锁屏时显示的对话框。
public staticfinal int TYPE_SYSTEM_ERROR = FIRST_SYSTEM_WINDOW+10; 系统内部错误提示,显示于所有内容之上。
public staticfinal int TYPE_INPUT_METHOD = FIRST_SYSTEM_WINDOW+11; 内部输入法窗口,显示于普通UI之上。应用程序可重新布局以免被此窗口覆盖。
public staticfinal int TYPE_INPUT_METHOD_DIALOG=FIRST_SYSTEM_WINDOW+12; 内部输入法对话框,显示于当前输入法窗口之上。
public staticfinal int TYPE_WALLPAPER =FIRST_SYSTEM_WINDOW+13; 墙纸窗口。
public staticfinal int TYPE_STATUS_BAR_PANEL =FIRST_SYSTEM_WINDOW+14; 状态栏的滑动面板。
public staticfinal int LAST_SYSTEM_WINDOW = 2999; 系统窗口结束。
public int memoryType; 窗口所使用的内存缓冲类型,默认为NORMAL。
public staticfinal int MEMORY_TYPE_NORMAL = 0; 窗口缓冲位于主内存。
public staticfinal int MEMORY_TYPE_HARDWARE = 1; 窗口缓冲位于可以被DMA访问,或者硬件加速的内存区域。
public staticfinal int MEMORY_TYPE_GPU = 2; 窗口缓冲位于可被图形加速器访问的区域。
public staticfinal int MEMORY_TYPE_PUSH_BUFFERS = 3; 窗口缓冲不拥有自己的缓冲区,不能被锁定。缓冲区由本地方法提供。
public int flags; 行为选项/标志,默认为none
public staticfinal int FLAG_DIM_BEHIND = 0x00000002; 窗口之后的内容变暗。
public staticfinal int FLAG_BLUR_BEHIND = 0x00000004;窗口之后的内容变模糊。
另外,还有输入法和Grativity的标志属性等。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
需要的朋友,可以点赞关注+转发”前往免费领取!
oid进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
[外链图片转存中…(img-TZWqJ7D2-1711140319244)]
需要的朋友,可以点赞关注+转发”前往免费领取!
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~