admin 管理员组

文章数量: 1184232


2024年3月8日发(作者:fortify扫描是动态分析吗)

Android布局及布局属性

1、帧布局 FrameLayout:是最简单的一个布局对象。在他里面的的所有显示对象爱你过都将固定在屏幕的左上角,不能指定位置,但允许有多个显示对象,只是后一个会直接覆盖在前一个之上显示,会把前面的组件部分或全部挡住。下图的例子里,FrameLayout中放了3个ImageView组件,第一个是蓝色的,第二个是绿色的,第三个是树状图(透明的png格式)。ImageView就相当于Html中的img标签,接下来会讲到这个组件。

下面看一个FrameLayout的例子:

android:layout_width="fill_parent" android:layout_height="fill_parent"

xmlns:android="/apk/res/android">

android:layout_width="wrap_content" android:layout_height="wrap_content">

android:layout_width="wrap_content" android:layout_height="wrap_content">

android:layout_width="wrap_content" android:layout_height="wrap_content">

2、线性布局 LinearLayout:

线性布局是所有布局中最常用的类之一,也是RadioGroup, TabWidget, TableLayout, TableRow,

ZoomControls类的父类。LinearLayout可以让它的子元素垂直或水平的方式排成一行(不设置方向的时候默认按照垂直方向排列)。

下面看一个LinearLayout的例子:别被例子的长度吓住,仔细看一下其实就是一个LinearLayout中放5个TextView标签而已,TextView相当于Html标签中的Label。

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center_horizontal"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="给小宝宝起个名字:"

android:textSize="20px"

android:textColor="#0ff"

android:background="#333"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="遥遥是男孩的小名"

android:textSize="20px"

android:textColor="#0f0"

android:background="#eee"

android:layout_weight="3"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="瑶瑶是女孩的小名"

android:textColor="#00f"

android:textSize="20px"

android:background="#ccc"

android:layout_weight="1"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="海因是男孩的大名"

android:textColor="#f33"

android:textSize="20px"

android:background="#888"

android:layout_weight="1"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="海音是女孩的大名"

android:textColor="#ff3"

android:textSize="20px"

android:background="#333"

android:layout_weight="1"

/>

3、绝对布局 AbsoluteLayout

绝对定位AbsoluteLayout,又可以叫做坐标布局,可以直接指定子元素的绝对位置,这种布局简单直接,直观性强,但是由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差。

下面我们举一个例子看看:例子里的机器人图片大小是250X250,可以看到我们使用android:layout_x和android:layout_y来指定子元素的纵横坐标。

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="/apk/res/android"

android:background="#fff">

android:src="@drawable/android"

android:layout_y="40dip"

android:layout_width="wrap_content"

android:layout_x="35dip"

android:id="@+id/ImageView01"

android:layout_height="wrap_content">

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:id="@+id/TextView01"

android:text="Android2.2 学习指南"

android:textColor="#0f0"

android:textSize="28dip"

android:layout_y="330dip"

android:layout_x="35dip">

android:layout_height="wrap_content"

android:layout_width="fill_parent"

android:id="@+id/TextView02"

android:text="图文并茂,理论清晰,操作性强"

android:textColor="#333"

android:textSize="18dip"

android:layout_y="365dip"

android:layout_x="35dip">

4、相对布局 RelativeLayout

相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试。

下面我们用相对布局再做一次上面的例子,首先放置一个图片,其它两个文本分别相对上一个元素定位:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#fff"

xmlns:android="/apk/res/android">

android:src="@drawable/android"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="40dip"

>

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:id="@+id/TextView01"

android:text="Android2.2 学习指南"

android:textColor="#0f0"

android:textSize="28dip"

android:layout_below="@id/ImageView01"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dip">

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:id="@+id/TextView02"

android:text="图文并茂,理论清晰,操作性强"

android:textColor="#333"

android:textSize="18dip"

android:layout_below="@id/TextView01"

android:layout_centerHorizontal="true"

android:layout_marginTop="5dip">

LinearLayout布局: 线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成

的。

在这个界面中,我们应用了一个 LinearLayout的布局,它是垂直向下扩展的 ,所以创建的布局XML文件,以

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

节点作为开头。一个布局容器里可以包括0或多个布局容器。

解释一下LinearLayout中的标签:

(1)android:orientation="vertical" 表示竖直方式对齐

(2)android:orientation="horizontal"表示水平方式对齐

(3)android:layout_width="fill_parent"定 义当前视图在屏幕上 可以消费的宽 度,fill_parent即填充整个屏幕。

(4)android:layout_height="wrap_content": 随着文字栏位的不同 而 改变这个视图的宽度或者高度。有点自动设置框度或者高度的意思

layout_weight默认值是零,用于给一个线性布局中的诸多视图的重要度赋值。比如说我们在

水平方向上有一个文本标签和两个文本编辑元素,该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间 ;如果两个文本编辑元素每一个的layout_weight值都设置为1, 则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而 第二个的设置为2,则剩余空间的三分之一分给第二个,三分之二分给第一个(正比划分)。(仅在LinearLayou中有效)。

RelativeLayout布局:允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。

RelativeLayout用到的一些重要的属性:

第一类:属性值为true或false 仅RelativeLayout中有效

android:layout_centerHrizontal 水平居中

android:layout_centerVertical 垂直居中

android:layout_centerInparent 相对于父元素完全居中

android:layout_alignParentBottom 贴紧父元素的下边缘

android:layout_alignParentLeft 贴紧父元素的左边缘

android:layout_alignParentRight 贴紧父元素的右边缘

android:layout_alignParentTop 贴紧父元素的上边缘

android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name” 仅RelativeLayout中有效

android:layout_below 在某元素的下方

android:layout_above 在某元素的的上方

android:layout_toLeftOf 在某元素的左边

android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐

android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐

android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐

android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px (任何布局都有效)

android:layout_marginBottom 离某元素底边缘的距离

android:layout_marginLeft 离某元素左边缘的距离

android:layout_marginRight 离某元素右边缘的距离

android:layout_marginTop 离某元素上边缘的距离

FrameLayout是最简单的一个布局对象:是一个框架布局样式,可以用include标签载入定

义的另一个layout文件,所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前 一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

EditText的android:hint

设置EditText为空时输入框内的提示信息。

android:gravity

android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右

android:layout_gravity

android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右

android:layout_alignParentRight

使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

android:scaleType:

android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ype / android:scaleType值的意义区别:

CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示

FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

FIT_XY / fitXY 把图片•不按比例

本文标签: 元素 布局 图片 例子 属性

更多相关文章

Win10电脑连蓝牙耳机时的立体声无声问题,如何破解?

1月前

我是笔记本荣耀 MagicBook 16 Pro连接FreeBuds 4 只有hands free有声音而stereo没有查阅过网络资料都不行去荣耀授权点让你重装系统,无奈之下只好自己来了,这次集合我搜集到的所

专业杀毒,直面RavMon.exe挑战,让安全常伴左右

1月前

RavMon.exe是一个强制不显示系统的隐藏文件的 简单病毒,顽固且有备份,涉及到很多操作。网络安全课上的学习研究成果运行环境:Windows XP 病毒的特性:

不花钱也能享受高速网速:教你如何将电脑变成无线路由器

1月前

其实win7本身就自带无线热点的功能,按下面的方法设置。 开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器购买费。 以

彻底保护你的IE!一招防止恶意网址入侵

1月前

篡改IE默认主页是恶意网站和病毒惯用的手法,目的是为了增加其网站流量,并偷偷安装木马。下面告诉大家一个绝招,即使病毒修改了你的主页也没用,最后讲述清除恶意主页的办法。 首先在我的电脑里定位到IE安装目录:C:Program

轻松几步!让笔记本的WiFi信号也给台式电脑带来网络

1月前

问题关键词: Windows 7 无线上网 共享 台式机 设置 问题大致描述: 笔记本现在可以无线上网,怎么设置可以把网络通过网线对连共享给台式机 解决方法: 【Windows XP 设置方法】

不用复杂的设置,教你如何让笔记本的无线信号成为台式机的网线

1月前

问题关键词: Windows 7 无线上网 共享 台式机 设置 问题大致描述: 笔记本现在可以无线上网,怎么设置可以把网络通过网线对连共享给台式机 解决方法: 【Windows XP 设置方法】

Win11系统IP配置大揭秘,轻松搞定IP设置

1月前

说明:由于项目开发的需要,有时候要更改主机的ip地址来进行测试或进行合作开发,以下是修改主机ip地址的步骤。 1、选择此电脑(我的电脑),右击选择属性,进入如下面板选择网络与Internet,接着点击

轻松上手Linux系统:通过Arch学习如何制作与刻录ISO文件

1月前

linux下制作ISO文件有几种方法,分别如下:1,从光盘中制作ISO文件cp devcdrom 路径ISO 文件名例子:cp devcdrom optmycd.iso,也可以用 dd

Linux ISO大揭秘:Isoslot帮你快速构建系统安装盘。

1月前

linux下制作ISO文件有几种方法,分别如下:1,从光盘中制作ISO文件cp devcdrom 路径ISO 文件名例子:cp devcdrom optmycd.iso,也可以用 dd

Win7关机总是闹脾气?这篇攻略教你一招制胜!

1月前

1.到系统的设备管理器,选择网络适配器,选择你的网卡右键属性,在高级里把唤醒功能和网络唤醒的值设成 无 2. 关闭系统发生错误时电脑自动重启的设置,鼠标右键点击“我的电脑”——》选择“属性”——》在

Windows XP新手必学:轻松定制你的任务栏外观

1月前

1、在XP系统的任务栏属性里,开启显示“快速启动栏”鼠标右击电脑桌面底部的“任务栏”–》属性—》勾选√“显示快速启动” 2、点击桌面左下角的“开始”–》运行–》输入: regsvr32 n i:u shell3

Adobe Flash Player背后的家庭网络设置暗语,你懂多少?详解配置秘籍!

1月前

一、设备:买一个路由器,如TP-LINK(TL-R402M)90元左右,有一个WAN口和四个LAN口,另加上两条的两端都钳有水晶头的网线。 二、接法:把插到台式机的网线水晶头(另一端已接ADSL的)的接到路由器的WAN口上,用

家庭网络新手必读:路由器设置全攻略

1月前

一、设备:买一个路由器,如TP-LINK(TL-R402M)90元左右,有一个WAN口和四个LAN口,另加上两条的两端都钳有水晶头的网线。 二、接法:把插到台式机的网线水晶头(另一端已接ADSL的)的接到路由器的WAN口上,用

SWF的秘密:深度解析Flash动画制作

29天前

制面板大全在程序运行过程中启动控制面板的各个设置功能:var x:cardinal;begin{启动控制面板}x:=winexec('rundll32.exe shell32.dll,Con

宽带连接屡遭651?全面解析问题根源,轻松破解故障!

23天前

我们日常使用网络的过程中有时候如果出现提示宽带连接错误651的提示,那么这个是什么原因你,其实宽带连接错误651为调制解调器(modem)发出的错误报告,一般情况下是未找到指定的端口。接下来我们来看看如何解决:

轻松管理你的网络流量:限制Flash内容的使用篇

21天前

注:以下内容转自不同的电脑教程第一章:WINXP全攻略一、优化启动设置(适用于家用版及专业版)1."我的电脑"->"属性"->"高级"

新手也能上手!Android 13 Launcher3 主页布局深度解析与修改技巧

20天前

修改主页布局 概述 ​ 在 Android 操作系统中,Launcher (主页应用)是用户与设备交互的核心界面之一,它负责 显示应用程序列表、提供快捷方式、管理小部件等功能。其中,Launch

释放你的电脑潜能:一招解决Adobe Flash Player中的垃圾问题

18天前

1、手动清理 (1)打开资源管理器,右键-属性,点击“磁盘清理”,然后选中要清理的文件,点击确定即可; (2)对于一些软件的卸载残留,可以打开注册表,找到各目录下的software子目录,从里面找那些你已经卸载过的软件

桌面图标下面的阴影怎么去掉

10天前

电脑|属性|高级|性能项的 设置|自定义|在桌面上为图标标签使用阴影|打上勾|如果不行,再在桌面空白处右击|排列图标|在桌面上锁定web项目|把勾去掉可以尝试以下4种方法:1.右击“我的电脑”,依次

如何利用192.168.1.1优化你的家庭网络体验

8天前

虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的

发表评论

全部评论 0
暂无评论