android所有布局

来源:互联网 发布:运营的数据分析水平 编辑:程序博客网 时间:2024/05/22 05:01

Android布局

<1>、什么是布局?

布局就是把界面的控件按照某种规律摆放在指定的位置,主要是为了解决应用程序在不同手机中的显示问题。

 

 

<2>、Android实现布局有两种方式

(1)代码:布局文件对应的Java类都是ViewGroup类的子

(2)Xml配置文件:所有的布局文件都是放在res/layout文件夹中(布局支持嵌套)

 

 

<3>、布局的一些基本属性

androidlayout_width

1.设置控件所占的宽度

2.取值范围:wrap_content

            File_parent

         Match_parent

  固定值:dp

androidlayout_height

1.设置控件所占的高度

2.取值范围同上

androidlayout_gravity

1.当前控件在父视图中的位置

2.取值范围:top|bottom|left|right

   center_vertical(水平居中)|center_horizontal(垂直居中)|center(居中)

fill_vertical(若有可能,纵向拉伸以填满容器)

fil_horizontal(若有可能,横向拉伸以填满容器)

fil(若有可能,纵向横向同时拉伸填满容器)

adroidlayout_marginTop

1.当前视图上边缘到某条基线的距离

2.只能去固定值

adroidlayout_marginButtom

 1.当前视图下边缘到某条基线的距离

 2.只能去固定值

 

 

<4>Android5大布局

1LinearLayout(线性布局)

1.线性布局会将其中的控件一个接着一个排列,可以横排也可以竖排

2.常用属性:

设置排序方向 xml属性:android:orientationhorizontal水平排列)(version垂直排列)

方法:setGravity(int)

3、android:layout_gravityandroid:gravity的区别?

android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。

android:layout_gravity:这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。

(2)TableLayout(表格布局)

1.表格布局可将试图按行、列进行排列

2.直接向TableLayout中添加控件,则这个控件将占一行

3.一个表格布局有一个<TableLayout>标签和若干<TableRow>标签组成

4.常用属性:

某列被收缩,以保证表格能完全填充父容器的宽度android:shrinkColumnssetColumnStretchable(int,boolean)

某列被拉伸,以保证表格能完全填充父容器的宽度

Android:stretchColumnssetColumnStretchable(int,boolean)

某列被隐藏, android:collapseColumnssetColumnCollapsed(int,boolean)

表格跨行:android:layout_span=”3”

(3)FrameLayout(桢布局)

1.类似于PS中图层概念

2.为每个加入其中的组件创建单独的桢

3.看上去像是组件叠加到一起

(4)  RelativeLayout(相对布局)

1.控件的位置总是相对父容器或者兄弟控件

2.如果A控件的位置是相对B控件的,那B控件要先定义

3.每个控件使用LayoutParams规定的参数来定义相对位置

4.LayoutParams的参数一类的值为truefalse,另一类是其他控件的ID

5.常用属性:

1Android:id

@+id/name

@id/name

@表示引用R.java文件中的id类中名字为name的属性

两者的区别

1.@+id/表示如果R.java文件中的id类中名字为name的属性

2.@id/表示引用R.java文件中的id类中的名字为name的属性

(2)boolean

Xml属性:

android:layout_alignParnentButton 如果该值为true,则将该控件的底部和父控件的底部对齐(底部和底部对齐)

android:layout_alignParnentLeft  如果该值为true,则将该控件的左边于父控件的左边对齐(左边和左边对齐)

android:layout_alignParnentTop   如果该值为true,则将该控件的顶部与父控件的顶部对齐(顶部与顶部对齐)

android:layout_alignParnentRight  如果该值为true,则将该控件的右边与父控件的右边对齐(右边与右边对齐)

android:layout_centerInParent 如果只为true,该控件将被至于父控件水平方向和垂直方向的中央

android:layout_centerInHorizontal  如果为true,该控件将至于水平方向的中央

android:layout_centerVertical  如果为true,该控件将被至于垂直方向的中央

(3)xml属性

Android:layout_above  将该控件的底部至于给定id的控件之上

Android:layout_below 将该控件的底部至于给定id的控件之下

Android:layout_toLeftOf 将该控件的右边缘和给定id的控件的左边缘对齐

Android:layout_toRightOf 将该控件的左边缘和给定id的控件的右边缘对齐

Android:layout_alignBottom 将该控件的底部边缘和给定id的控件的底部边缘对齐

Android:layout_alignBaseline 将该控件的baseline和给定id的控件的baseline对齐

Android:layout_alignLeft 将该控件的左边缘和给定id的控件的左边缘对齐

Android:layout_alignRight 将该控件的右边缘和给定id的控件的右边缘对齐

Android:layout_alignTop 将该控件的顶部边缘和给定id的控件的顶部对齐

 

 

<5>、Android 4.0新布局

GridLayout:

1GridLayout布局使用虚细线将布局划分为行、列和单元格,页支持一个控件在行、列上都与交错排列

2)与html中的table非常类似

34.0以上的版本可以直接使用

42.x的版本需要添加一个支持包

常用属性:

1.指定行数:

xml属性:rowCount

方法:layout.setRowCount(int row)

2.指定列数

xml属性:columnCount

方法:layout.setRCoulmnCount(int column)

3.设置控件跨行

xml属性:android:layout_row

android:layout_gravity

代码:设置控件的跨行列需要使用GridLayout.Spec

GridLayout.Spec rowSpec=GridLayout.spec(4);设置控件在第几行

GridLayout.Spec rowSpec=GridLayout.spec(14);设置控件在第几行,并跨几行

4.设置控件跨列

Xml属性:

Android:laout_columnSpan

代码:

GridLayout.Spec columnSpec=GridLayout.spec(4);设置控件在第几行

GridLayout.Spec columnSpec=GridLayout.spec(14);设置控件在第几列,并跨几列

RTL(从左往右)

Android4.2之后才使用,一般在用在阿拉伯语等环境中,中国用户很少使用

androidManifest.xml中把application标签的androidsupportsRtl属性值 设置为true

相对应的视图标签把android:layoutDirection属性值设置为rtl

 

<6>.布局重用

可以在布局文件中使用<include>标签重用布局

语法<include android:id=@+id/cell1 layout=”@layout/frame_layout” />

 

连接夜神:创建一个.bat文件

c:

cd:C:\Program Files (x86)\Nox\bin

nox_abc connect 127.0.0.1:62001

 

第一步:进入manifests这个文件夹,里面有个AndroidManifest.xml文件,这个文件相当于web.xml

第二步:<activity android:name=".MainActivity">点击.MainActivity进入第二个文件夹

 

MainActivity

第三步:setContentView(R.layout.activity_main);里面的R代表res

 

    LinearLayout layout=new LinearLayout(this);//ctrl+p查看放什么参数

 

no usb devices or running emulators detected

没有检测到USB设备或运行的模拟器

 

解决方案:重启android studio

 

 

原创粉丝点击