UI布局和初级控件的使用_android ui控件的使用,2024年最新网络安全面试题2024高级-程序员宅基地

技术标签: 2024年程序员学习  ui  android  

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

  • layout_centerVertical:设置是否相对于父布局垂直居中,属性值为true
  • layout_centerHorizontal:设置是否相对于父布局水平居中,属性值为true
  • layout_centerInParent:设置是否相对于父布局居中(水平和垂直方向都均居中),属性值为true
  • layout_alignParentTop:设置在父布局的顶部,属性值为true
  • layout_alignParentBottom:设置在父布局的底部,属性值为true
  • layout_alignParentRight:设置在父布局的右侧,属性值为true
  • layout_alignParentLeft:设置在父布局的左侧,属性值为true
  • layout_alignParentStart:设置在父布局开始的位置,属性值为true
  • layout_alignParentEnd:设置在父布局结束的位置,属性值为true

2、子控件之间的相对位置属性:

  • layout_above:组件位于某个组件的上方,属性值为另外一个控件的唯一资源id
  • layout_below:某个组件的下方,属性值同上
  • layout_toLeftOf:某个组件的左侧,属性值同上
  • layout_toRightOf:某个组件的右侧,属性值同上
  • layout_alignTop:和某个组件上方对齐,属性值为另外一个子控件的唯一资源id
  • layout_alignBottom:和某个组件下方对齐,属性值同上
  • layout_alignLeft:和某个组件左侧对齐,属性值同上
  • layout_alignRight:和某个组件右侧对齐,属性值同上

3、其他特殊属性

  • ignoreGravity:忽略容器中的某个组件,使其不受RelativeLayout的空置,属性值是某个控件的唯一资源id
  • gravity:设置内部子控件的显示位置。属性值可以是center_horizonta、top、bottom、left等其中的一个值或者两个值。
FrameLayout 帧布局

1、帧布局的特点是控件层叠显示,默认从布局容器的左上角摆放。

2、子控件摆放顺序:先添加的控件放在最底层,后添加的子控件放在上层。

3、可以通过layout_gravity属性修改FrameLayout的子控件摆放位置。

4、使用场景:相较于LinearLayout和RelatvieLayout,FrameLayout适用场景较少,适合用于重叠布局显示的情景。

GridLayout 网格布局

顾名思义网格布局就是将布局设置成网格,通过网格定位实现对控件的摆放。GridLayout将布局划分为行、列和单元格,同时也支持在行、列上进行交错排列。

1、属性及说明

  • orientation:设置子组件的排列方式,可选值为vertical和horizontal。默认水平方式排列,即horizontal
  • gravity:设置子组件的排列方式,可选值:center、left、right、bottom等,同时使用两种时用|分隔开
  • layout_gravity:如果让某个组件填满行或者列,设置layout_gravity为fill

2、特有属性和说明

  • rowCount:设置网络布局有几行
  • columnCount:设置网络布局有几列
  • layout_row:子组件中,设置组件位于第几行
  • layout_column:子组件中,设置组件位于第几列
  • layout_rowSpan:子组件中,用于设置组件跨几行
  • layout_columnSpan:子组件中,用于设置组件跨几列

AbsoluteLayout 绝对布局

1、通过坐标确定控件的摆放位置,通过宽度和高度显示控件。

2、绝对布局在日常开发中因为适配不方便,所以基本不使用,此处不再赘述,可自行学习使用。

ConstraintLayout 约束布局

为了解决布局嵌套过多的问题,在API9以后,提供了ConstraintLayout 约束布局。android studio 2.3版本后默认的布局样式,可以把ConstraintLayout看做是RelativeLayout布局的升级。

初级控件
TextView 文本

1、android中的文本控件、用于展示字体

2、常用属性:

  • autuLink:设置文本是否为URL链接/email/电话号码,使用该属性时,文本显示为可点击的链接。
  • autoText:设置该属性时,文本将自动执行输入值的拼写纠正。
  • cursorVisible:该属性用于设置光标为显示/隐藏,默认是显示。
  • drawableTop:在展示的text文本正上方显示输出一个drawable。
  • ellipsize:该属性用于设置当文字过长时,文本的展示样式。可选值:start,end,middle。分别表示在文本的开头,结尾和中间省略内容并显示为省略号…
  • maxLines:设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数不显示。
  • lineSpacingMultiplier:设置行间距的数值,该数值为标准数值的倍数,比如1.2表示1.2倍。
  • phoneNumber:设置为电话号码的输入方式。
  • textColorHighlight:被选中文字的底色,默认蓝色。
  • textColorHint:设置提示信息文字的颜色,默认为灰色。
  • textStyle:设置字形,可选值为[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开。
Button 按钮
  • drawable:设置图片资源
  • text:设置显示的文本
  • textColor:设置显示文本的颜色
  • textSize:显示文本的字体大小
  • background:设置背景,图片或者颜色
  • onClick:点击事件
EditText 输入框
  • hint:内容为空时显示的文本
  • inputType:限制输入类型,number整数类型,numberDecimal小数点类型,date日期类型,text文本类型(默认值),phone电话,textPassword密码,textVisiblePassword可见密码,textUri网址
  • gravity:设置文本的位置,start、center、end三个可选值。
  • digits:允许设置的字符范围,即限制可以设置哪些字符。
  • drawableLeft:设置输入框左侧的drawable资源。
  • drawablePadding:设置输入内容text与drawable的间隔,需配合drawableLeft、drawableRight、drawableTop、drawableBottom一起使用。
  • 监听事件:TextChangeListener,监听输入框内容变化
  • scrollHorizontally:设置文本超出TextView的宽读时,是否出现横拉条。
RadioButton 单选框按钮

1、定义:单选框表示的是在一组选项当中,只能选择其中一个选项的控件。

2、声明格式:使用RadioGroup标签在xml中定义表示是一个单选框按钮,其中的选项内容使用RadioButton标签进行定义

3、属性:

  • checked:是否为选中状态,可选值为true和false
  • text:选项标签中对应的文本信息
ImageView 视图控件
  • src:设置视图控件的图像引用来源,该值往往是res/drawable目录下的某个图片资源。
  • scaleType:该属性表示视图控件的缩放类型,可选值包括:matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY
    • center:保持原图的大小、显示在ImageView的中心。如果原图的size大于ImageView的size,超出部分做裁剪处理。
    • cneterCrop:让图像填满整个ImageView,原图中心和ImageView中心进行对齐,等比例放大处理。
    • centerInside:以原图完全显示为目的,将图片的内容完整居中显示。
    • matrix:不改变原图大小,从ImageView左上角开始绘制原图,超过ImageView部分做裁剪处理。
    • fitCenter、fitEnd、fitStart:将原图按比例放大(缩小)到ImageView控件的尺寸高度,分别居中、底部、顶部展示。
ProgressBar 进度条
  • Android系统中的进度条默认形状是圆形。
  • 可以通过style来修改进度条的样式。
  • visbility:该属性设置进度条控件的可见性。可选值有三种:visible:肉眼可见、invisible:肉眼不可见但占据空间,gone:消失不占空间。
AlertDialog 对话框
  • 系统中需要通过提示信息与用户进行交互时,可以使用对话框进行实现。
  • 对话框的位置显示在所有的界面元素之上,当对话框弹出时,其他控件无法操作和交互。
  • 在开发中,使用自定义的对话框完成功能实现。
UI布局和基本控件总结
共同属性
  • id:唯一资源编号
  • width:宽度
  • height:高度
  • background:背景属性
  • visible:布局或者控件的可见性,可选值包括:visible、invisible、gone
特殊属性

视不同控件会有不同的特殊属性。

控件交互事件处理
  • findViewById:在Activity中通过资源id解析到控件,需要强制类型转换成对应的控件类型;
  • setOnClickListener:为某个控件设置处理点击事件;
  • setOnLongClickListener:控件长按事件;
布局和控件使用步骤

1、Activity通过setContentView设置对应的layout布局文件(xml文件);

2、在xml布局文件中进行UI布局和控件布局,为控件设置唯一资源id编号

如何在尺寸各异的屏幕上正常显示布局效果?

确保UI布局能在不同尺寸的屏幕上保持统一的展示效果,需要使用屏幕适配方案,对UI布局和各主流尺寸屏幕进行适配,简称为屏幕适配。

屏幕适配基础知识
  • 屏幕尺寸:手机对角线的物理尺寸,简单说就是指屏幕大小,单位是英寸。比如小米9(6.39寸)、荣耀20(6.26寸)、OPPO Reno(6.4寸)、华为P30(6.1寸)、华为P30Pro(6.47寸)、小米10(6.67寸)
  • 屏幕分辨率:显示设备在屏幕的横向、纵向上的像素点数的总和。格式为宽X高。比如华为P30(2340 x 1080像素)、小米10(2340 x 1080像素)、小米Mix 3(2340 x 1080像素)。分辨率单位是像素,英文px;1px = 1像素点
  • 屏幕像素密度:dosts per ich,每英寸的像素点数,单位是简称dpi。
屏幕尺寸、分辨率、像素密度的关系

分辨率为宽x高,屏幕大小为英寸。像素密度与另外两者的关系公式为:

根据分辨率和屏幕大小尺寸两个方面的数据,结合上述三者关系的公式,最后可以计算得到像素密度的最终值。

如上图所示,根据最后的像素密度按从小到大进行密度类型的分类,五个等级分别对应:ldpi、mdpi、hdpi、xhdpi以及xxhdpi。

使用上述公司可以在由需要的时候,设置控件的尺寸及布局的尺寸,设置的时候单位是px。但是因为屏幕的分辨率不同,所以对不同的尺寸屏幕要想保持效果一致,就需要设置不同的px,这显然是灾难。因此,Android还有一个特有的单位:密度无关像素

密度无关像素

density-independent pixel,简称为dip或者dp,其含义是表示与终端上的实际物理像素点无关,因此可以保证在不同像素密度的设备上显示相同的效果。所以:

1、Android应用开发中要使用dp作为控件和布局尺寸,而不是px。

2、dp和px有一个转换的关系。UI设计师给到开发的设计图是px的单位,Android开发使用dp作为单位,因此需要对两者进行转换。

独立比例像素

在Android中还有一个概念为scale-independent pixel,简称为sp或者sip,可以翻译为独立比例像素。单位是sp。对于独立比例像素,有两点需要掌握:

1、应用场景:在Android的开发中,使用sp单位进行文字大小的设置,可以根据字体的大小首选项进行缩放。

2、常用:一般使用12sp、14sp、16sp等类似偶数的整数作为字体字号的大小。奇数和小数容易造成精度的丢失。

Android屏幕碎片化适配方法
一、布局匹配

结论:首选RelativeLayout(相对布局),禁止使用AbsoluteLayout(绝对布局)

常用的布局:Linearlayout(线性布局)、RelativeLayout(相对布局)、帧布局(FrameLayout)

根据屏幕大小配置不同的布局文件

当需要为不同的屏幕尺寸进行界面适配时,往往需要通过设计不同的布局来进行实现。让Android设备能自动的在不同的设备上加载不同的布局。

如何自学黑客&网络安全

黑客零基础入门学习路线&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
img

网络安全工程师企业级学习路线

img
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

img
一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-2Oftyf7x-1713412691279)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2401_83620654/article/details/137915440

智能推荐

linux devkmem 源码,linux dev/mem dev/kmem实现访问物理/虚拟内存-程序员宅基地

文章浏览阅读451次。dev/mem: 物理内存的全镜像。可以用来访问物理内存。/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。调试嵌入式Linux内核时,可能需要查看某个内核变量的值。/dev/kmem正好提供了访问内核虚拟内存的途径。现在的内核大都默认禁用了/dev/kmem,打开的方法是在 make menuconfig中选中 device drivers --> ..._dev/mem 源码实现

vxe-table 小众但功能齐全的vue表格组件-程序员宅基地

文章浏览阅读7.1k次,点赞2次,收藏19次。vxe-table,一个小众但功能齐全并支持excel操作的vue表格组件_vxe-table

(开发)bable - es6转码-程序员宅基地

文章浏览阅读62次。参考:http://www.ruanyifeng.com/blog/2016/01/babel.htmlBabelBabel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行// 转码前input.map(item => item + 1);// 转码后input.map(function (item) { return item..._让开发环境支持bable

FPGA 视频处理 FIFO 的典型应用_fpga 频分复用 视频-程序员宅基地

文章浏览阅读2.8k次,点赞6次,收藏29次。摘要:FPGA视频处理FIFO的典型应用,视频输入FIFO的作用,视频输出FIFO的作用,视频数据跨时钟域FIFO,视频缩放FIFO的作用_fpga 频分复用 视频

R语言:设置工作路径为当前文件存储路径_r语言设置工作目录到目标文件夹-程序员宅基地

文章浏览阅读575次。【代码】R语言:设置工作路径为当前文件存储路径。_r语言设置工作目录到目标文件夹

background 线性渐变-程序员宅基地

文章浏览阅读452次。格式:background: linear-gradient(direction, color-stop1, color-stop2, ...);<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner>] ,]? &l..._background线性渐变

随便推点

【蓝桥杯省赛真题39】python输出最大的数 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析-程序员宅基地

文章浏览阅读1k次,点赞26次,收藏8次。第十三届蓝桥杯青少年组python编程省赛真题一、题目要求(注:input()输入函数的括号中不允许添加任何信息)1、编程实现给定一个正整数N,输出正整数N中各数位最大的那个数字。例如:N=132,则输出3。2、输入输出输入描述:只有一行,输入一个正整数N输出描述:只有一行,输出正整数N中各数位最大的那个数字输入样例:

网络协议的三要素-程序员宅基地

文章浏览阅读2.2k次。一个网络协议主要由以下三个要素组成:1.语法数据与控制信息的结构或格式,包括数据的组织方式、编码方式、信号电平的表示方式等。2.语义即需要发出何种控制信息,完成何种动作,以及做出何种应答,以实现数据交换的协调和差错处理。3.时序即事件实现顺序的详细说明,以实现速率匹配和排序。不完整理解:语法表示长什么样,语义表示能干什么,时序表示排序。转载于:https://blog.51cto.com/98..._网络协议三要素csdn

The Log: What every software engineer should know about real-time data's unifying abstraction-程序员宅基地

文章浏览阅读153次。主要的思想,将所有的系统都可以看作两部分,真正的数据log系统和各种各样的query engine所有的一致性由log系统来保证,其他各种query engine不需要考虑一致性,安全性,只需要不停的从log系统来同步数据,如果数据丢失或crash可以从log系统replay来恢复可以看出kafka系统在linkedin中的重要地位,不光是d..._the log: what every software engineer should know about real-time data's uni

《伟大是熬出来的》冯仑与年轻人闲话人生之一-程序员宅基地

文章浏览阅读746次。伟大是熬出来的  目录  前言  引言 时间熬成伟大:领导者要像狼一样坚忍   第一章 内圣外王——领导者的心态修炼  1. 天纵英才的自信心  2. 上天揽月的企图心  3. 誓不回头的决心  4. 宠辱不惊的平常心  5. 换位思考的同理心  6. 激情四射的热心  第二章 日清日高——领导者的高效能修炼  7. 积极主动,想到做到  8. 合理掌控自己的时间和生命  9. 制定目标,马..._当狼拖着受伤的右腿逃生时,右腿会成为前进的阻碍,它会毫不犹豫撕咬断自己的腿, 以

有源光缆AOC知识百科汇总-程序员宅基地

文章浏览阅读285次。在当今的大数据时代,人们对高速度和高带宽的需求越来越大,迫切希望有一种新型产品来作为高性能计算和数据中心的主要传输媒质,所以有源光缆(AOC)在这种环境下诞生了。有源光缆究竟是什么呢?应用在哪些领域,有什么优势呢?易天将为您解答!有源光缆(Active Optical Cables,简称AOC)是两端装有光收发器件的光纤线缆,主要构成部件分为光路和电路两部分。作为一种高性能计..._aoc 光缆

浏览器代理服务器自动配置脚本设置方法-程序员宅基地

文章浏览阅读2.2k次。在“桌面”上按快捷键“Ctrl+R”,调出“运行”窗口。接着,在“打开”后的输入框中输入“Gpedit.msc”。并按“确定”按钮。如下图 找到“用户配置”下的“Windows设置”下的“Internet Explorer 维护”的“连接”,双击选择“自动浏览器配置”。如下图 选择“自动启动配置”,并在下面的“自动代理URL”中填写相应的PAC文件地址。如下..._設置proxy腳本