Android学习笔记 第九章

本文介绍了Android应用中用户界面的设计与布局方法,包括不同类型的布局类及其属性设置,如LinearLayout、RelativeLayout等,并探讨了如何使用容器控件及数据驱动组件来优化UI呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第九章 使用布局设计用户界面

9.1.1使用代码创建布局

9.2组织用户界面

一种特殊的view ViewGroup 它可以包含多个子view控件

手动添加view 和 layout的方法(不推荐)

 

TextView text1 = new TextView(this);
        text1.setText("测试1");
        TextView text2 = new TextView(this);
        text2.setText("测试2");
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
       
        layout.addView(text1);
        layout.addView(text2);
        setContentView(layout);

9.2组织用户界面

9.3使用内建的布局类

重要的属性名均以android:开头

如android:layout_height值可以为 具体尺寸 wrap_content match_parent

9.3.1使用FrameLayout

默认以布局的左上角进行绘制 可以通过修改layout_Gravity进行修改

9.3.2使用LinearLayout

将所有子View按照水平或者垂直排列。

一些重要的属性:

weightSum 所有子空间权重之和

一是值越大,重要性越低,所占用的空间越小;

二是值越大,重要性越高,所占用的空间越大

其实这两种情况都不太准确,第一种情况与android:layout_height(注:这里方向是竖直,如果方向设为水平,刚取决与android:layout_weight)的取值有关,如果设为fill_parent,刚第一种情况成立(注:只有此种情况下成立)

9.3.3使用RelativeLayout布局

靠指定相对位置来进行布局

一些重要属性

layout_cnterInParent:在父视图中水平,垂直居中

layout_centerHorizontal:在父视图中水平居中

layout_centerVirtical:在父视图中垂直居中

layout_alignParentTop:与父视图上边沿对齐

layout_alignParentBottom:与父视图下边沿对齐

layout_alignParentRight:右边沿

layout_alignParentLeft:左边沿

layout_alignLeft: 与指定的视图id左边沿对齐

。。。

layout_above:将该视图的下边沿放在指定视图之上

layout_below :将盖世兔的下边沿放在指定视图之下

layout_toLeftOf:右边沿放在指定视图左侧

9.3.4使用TableLayout

以表格方式摆放View

没有个TableRow就是一行View

重要的属性:

collapseColumns 使用逗号隔开想要隐藏的列号

shrinkColums:使用逗号隔开想要收缩的列号

stretchColums:使用逗号隔开想要伸展的列号

layout_colum:该TableRow子视图所在的列号

layout_span:该TableRow子视图所要合并的列号

9.3.5使用GridLayout布局管理器

视图中的子View可以自由跨越行 列

重要属性:

columnCount, rowCount :行 列的数目

orientation: 默认排列顺序

layout_column: 子View的列编号

layout_columSpan:子View的列跨度

9.3.6在屏幕上使用多布局

布局本身也是一种View,所有布局可以包含布局

orientation 布局为行或是列对齐

9.4使用容器空控件类

ViewGroup即容器,容器类型包括:

1.列表 网格 和 画廊

2.使用Taghost和TabControl表示的标签;

3.使用ScrollView和HorizontalScrollView进行滚动

4.使用ViewFlipper, ImageSwitcher,TextSwitcher所表示的开关选项

5使用SlidingDrawer隐藏或显示内容。

9.4.1使用数据驱动容器

AdapterView类型控件包括 ListView, GridView, GalleryView.

Android SDK中, Adapter从数据源中读取数据并绑定在View空间中,常见的Adapter为CursorAdapter:主要从数据库中读取数据,ArrayAdapter读取数组数据。

创建一个Adapter时,你需要提供一个布局标示符,这个标示符将作为模板填充每一行数据,你所创建的模板包含Adapter所需关联控件的标示符。

1.使用ArrayAdapter

ArrayAdapter自动将数组中的元素与一个控件view相匹配。

new ArratAdapter<数据类型>(上下文, 布局模板, 数据);

2.使用CursorAdapter

CursorAdapter需要使用过一个curson

然后实例化一个SimpleCursorAdapter

3.向AdapterView绑定数据

setAdapter(adapter);

4.处理选择时间

AdapterView处理选择View事件,需要监听Click函数

setOnItemClickListener()

第一个参数表示哪一个Adapter被点击,第二个参数为选择的View,第三个参数为列表项id列(以0开始)。

9.4.2使用标签组织视图

首先需要获得TabHost实例

getTabHost()函数

使用addTab(tabHost.newTabSpec("tab1").setIndicator("标签名称").setContent());

setContent参数有两种方法。

1.new Intent(this, ancivity.class);

2.直接使用layout的id,不过需要先将xml转换为视图,使用LayoutInflater.from(this).inflate(R.layout, tabHost.getTabContentView(), true);

9.4.3添加滚动支持

可以使用ScrollView(垂直滚动)和HorizontalScrollView(水平滚动)控件,不过控件中只能有一个子控件

9.4.4探索其他视图容器

1.开关

ImageSwitcher 和 TextSwitcher,每个Switcher只有两个View控件。

2.滑动抽屉

SlidingDrawer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值