第21/22讲 UI_布局 之 线性布局

布局管理就是组件在activity中呈现方式,包括组件的大小,间距和对齐方式等。

Android提供了两种布局的实现方式:

1.在xml配置文件中声明:这种方式是将需要呈现的组件在配置文件中进行声明,在程序中通过setContentView

(R.layout.main)方法将视图呈现在activity中通过findViewById()方法获得组件实例。一般推荐这种方式。

2.在程序中通过编码,动态的生成组件以设置相关布局。

Android提供了5种类型的布局类型:

第一个:LinearLayout           (线性布局)

第二个:RelativeLayout         (相对布局)

第三个:TableLayout             (表格布局)

第四个:AbsoluteLayout       (绝对布局)

第五个:FrameLayout           (帧布局)

、LinearLayout
(线性布局)
:

线性布局,是5种布局最常用的一种,可以将容器里的组件一个挨一个地排列,LinearLayout可以设置各组件的排列方式(横向或者纵向)。

(1) 通过xml配置文件声明

      

1.垂直                                                              2.水平                                                              3.嵌套

android:orientation 控制布局方向,属性值有"vertical"(垂直)和"horizontal"(水平)两种。

android:gravity 控制组件的对齐方式,其值有top,bottom,left,right,center等,默认值为左上角对齐

android:layout_weight 可以对整个视图按比例分割

布局嵌套,这里是一个线性布局里头嵌套另一个线性

<?xmlversion="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="horizontal" >

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button1"/>

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button2" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button3"/>

</LinearLayout>

</LinearLayout>

(2)在程序中通过编码设置相关布局

在MainActivity.java中修改:

protected void onCreate(BundlesavedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.main); //设置当前布局的样式。在初建一个activity的时候,程序会帮我们建好

LinearLayout  mLinearLayout =new LinearLayout(this); //创建一个管理对象

/*建立布局样式宽和高,对应xml布局中:android:layout_width="fill_parent"

android:layout_height="fill_parent" */

mLinearLayout.setLayoutParams params= newLinearLayout.LayoutParams(

LayoutParams.MATCH_PARENT,LayoutParams. MATCH_PARENT);

mLinearLayout.setLayoutParams(params);

// 设置方向,对应xml布局中:android:orientation="vertical"

mLinearLayout.setOrientation(LinearLayout.VERTICAL);

TextView mTextView = new TextView(this);      // 创建TextView对象

mTextView.setText("hello world");                       // 设置文字

LinearLayout.LayoutParams mLayoutParams = newLinearLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); // 为其建立布局样式

mLinearLayout.addView(mTextView, mLayoutParams);  // 在父类布局中添加它,及布局样式

}

第21/22讲 UI_布局 之 线性布局的更多相关文章

  1. Android:控件布局(线性布局)LinearLayout

    LinearLayout是线性布局控件:要么横向排布,要么竖向排布 决定性属性:必须有的! android:orientation:vertical (垂直方向) .horizontal(水平方向) ...

  2. android布局之线性布局

    LinearLayout 线性布局有两种,分别是水平线性布局和垂直线性布局,LinearLayout属性中android:orientation为设置线性布局当其="vertical&quo ...

  3. Android 布局(线性布局、相对布局)

    一.线性布局(LinearLayout) <LinearLayout****</LinearLayout>1. orientation(布局方向)value=0 horizontal ...

  4. Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)

    线性布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...

  5. Android -- UI布局管理,相对布局,线性布局,表格布局,绝对布局,帧布局

    1. 相对布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...

  6. Android布局之线性布局——LinearLayout

    本文将详细介绍线性布局的各种xml属性. xml属性 <?xml version="1.0" encoding="utf-8"?> <Line ...

  7. 《Tsinghua os mooc》第21~22讲 文件系统

    第二十一讲 文件系统 文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能. 组织.检索.读写访问数据 大多数计算机系统都有文件系统 Google 也是一个文件系统 文件是具有符号名,由 ...

  8. android的布局-----LinearLayout(线性布局)

    学习导图(图片在网上下载) 知识点详解(演示效果方便组件没有设置id) (1)gravity和Layout_gravity android:gravity 属性是对该view中内容的限定.比如一个bu ...

  9. Android开发之线性布局详解(布局权重)

    布局权重 线性布局支持给个别的子视图设定权重,通过android:layout_weight属性.就一个视图在屏幕上占多大的空间而言,这个属性给其设 定了一个重要的值.一个大的权重值,允许它扩大到填充 ...

随机推荐

  1. C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)

    [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool SendMes ...

  2. [置顶] NO.4 使用预处理器进行调试

    <c++ primer>第四版 p190 ************************************************************************* ...

  3. com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行

    參考博客com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行 java获取结果集,if(rs!=null).和while(rs.next( ...

  4. [Typescript] Typescript Enums vs Booleans when Handling State

    Handling state with Typescript enums, instead of booleans, is preferred because:- Enums are more rea ...

  5. python 下的数据结构与算法---5:递归(Recursion)

    定义:递归就是不断分割整体成部分直到可以轻易解决分割出来的部分. 递归表达式三定律: 1:递归表达式必须有个最小单元     (最小单元既是停止递归调用以及能够直接运算的) 2:递归表达式在运算过程中 ...

  6. python challenge 待续中

    网址:http://www.pythonchallenge.com/解答好文:http://story.iteye.com/blog/730466 0:2^38 reduce(lambda x,y:x ...

  7. 关于textbox.attributes["value"]的问题

    在“修改”时,出现这个问题,后台点击修改时,应该是文本框出现一些初始值 BLL.manager bll = new BLL.manager(); Model.manager model = bll.G ...

  8. Xcode简易基础篇,以新手角度去操作

    声明:此Newlife XCode非Mac的XCode,避免误会. 日常用的Newlife X组件的相关资源,不限于XCode,只是以XCode组件为主: 1.QQ群:1600800 2.博客 : h ...

  9. C++安装JSONCPP

    VS2013里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz 利用VS2008打开jsoncpp ...

  10. KM算法专题

    原文:http://972169909-qq-com.iteye.com/blog/1184514 题目地址:这里. 1)求图中所有环的总长度(环的长度不唯一)的最小值.当无法得到完备匹配时说明环不存 ...