文档章节

Android 第八课——UI布局2

learn_more
 learn_more
发布于 2015/01/04 20:53
字数 920
阅读 182
收藏 6

Android布局分为:线性布局、相对布局、表格布局、帧布局、网格布局五种

1)FrameLayout(帧布局)

帧布局是最简单的布局对象,它被定制为用户屏幕上的一个空白备用区域,之后用户可以在其中填充一个单一对象,例如一张图片等。所有的子元素将会固定在屏幕左上角;我们不能为FrameLayout中的一个子元素指定一个位置。而且新增的子元素将会直接覆盖填充旧的子元素,类似于一个栈结构,当然也不一定是全部挡住,这样看透明度以及大小来决定。

<FrameLayout xmlns:android=
"http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:foreground="#ff0000"
> 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/loginName" 
android:textSize="@dimen/dp50"/> 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/loginName" 
android:textSize="@dimen/dp100"/> 
</FrameLayout>

记住一些特性:
1)所有的组件都会放置于这块区域的左上角;
2)帧布局的大小由子控件中最大的子控件决定,
3)如果都组件都一样大的话,同一时刻就只能能看到最上面的那个组件了!原因是覆盖
4)foreground="#ff0000" 前景色,指定的颜色或图片永远覆盖其他的  
5)foregroundGravity="fill_vertical" 前景色的位置,这个属性具体我没弄懂

2)GridLayout(网格布局)

网格布局是Android4.0之后新增的一中布局方式,他与TableLayout以及LinearLayout在操作上有点神似,当然,他自然有他的过人之处,主要就是在LinearLayout基础上新增一些属性,更易于使用。使用当中,注意组件如果没有标明跨行跨列那么组件按顺序默认只占一个单元格。

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/GridLayout1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:rowCount="3" 
android:columnCount="2" 
android:orientation="horizontal">
  <Button  
        android:id="@+id/btn"  
        android:layout_columnSpan="2" //跨2列
        android:layout_gravity="fill" //按钮填充两列的空白,原因是不需要设置layout_width layout_height
        android:text="0"/>
        ----------------
    <GridLayout>

记住一些特性:

1)android:orientation:组件排列方式

2)android:layout_gravity:组件对齐方式

3)android:rowCount:设置行数量

4)android:columnCount:设置列数量

对于容器内的组件也新增了一些属性:

1)android:layout_rowSpan:占用行数

2)android:layout_columnSpan:占用列数

3)android:layout_gravity = "fill"  组件填满所横越的整行或者整列,这个属性对那些有跨行或跨列的组件很有必要。

关于网格布局,其实我也是很头痛的,因为一开始学习没有相关经验,总是无法编译通过,后面看了一下这篇博客,所以就学习了起来。特别是在GridPanel如何在Eclipse中运行起来,这篇博客就显的格外重要了。

下面这些内容就是转载自博客:

http://blog.csdn.net/jianghuiquan/article/details/8299973


可能遇到的问题:

当读者将布局设置为GridLayout时,会出现莫名其妙的报错,

如果代码语法逻辑没有错的话,就可能是配置文件AndroidManifest.xml的问题了

因为GridLayout是android 4.0 后才推出的,API Level 为 14

只需要将配置文件中的MinSDK改成14或者以上版本即可,保存,问题就解决了!


请参考 :

 http://blog.csdn.net/jianghuiquan/article/details/8299973





© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
Android 第七课——UI布局

Android布局分为:线性布局、相对布局、表格布局、帧布局、网格布局五种 布局中的距离单位:dp、px、sp。 布局继承关系图: 1)熟悉几个常用属性 <Button android:id="@+id/loginName" andr...

learn_more
2015/01/03
464
0
android布局基础及范例:QQ登陆界面设计

使用android手机的用户想必都有android手机QQ客户端吧,我们是不是觉得QQ登陆界面非常漂亮美观而且具有亲和力?我们是不是也想作出像 QQ那样美观的界面?有的人肯定会问,做UI那不是美工人员...

鉴客
2011/11/01
17.3K
4
Android Studio教程07-Fragment的使用

目录 1. Fragment是什么 1.1. 设计原理和实例 2. 创建fragment 2.1. fragment的生命周期 2.2 添加用户界面:融入到Activity中 3. 管理fragment:FragmentManager 3.1. 执行片段事务 3.2. 与A...

Bricker666
01/21
0
0
【Google官方教程】前言:高效的Bitmap显示

转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/88153 译者:Ryan Hoo 来源:https://developer.andro...

RyanHoo
2012/11/09
3.8K
11
Android 第五课——Activity基础

1 Activity 概念 呈现在手机上的视图界面,类似于web程序的Servlet,它的父类是Context(上下文)。 2 Activity 创建 1)新建一个继承Activity的类 2)重写onCreate方法,这个方法会在Activ...

learn_more
2015/01/01
177
0

没有更多内容

加载失败,请刷新页面

加载更多

cleanLastUpdated.bat

@echo offrem create by AnXiaole rem 这里写你的仓库路径set REPOSITORY_PATH=C:\Users\AnXiaole\.m2\repositoryrem 正在搜索...for /f "delims=" %%i in ('dir /b /s "%REPO......

安小乐
14分钟前
3
0
操作放大器的用法是什么?

  有区别   1、单级放大的倍数比较有限,一般在100倍以下。放大倍数很大的话,负反馈就比较浅,对于放大倍数的稳定性不利。假如需要放大倍数更高,就不得不动用多级放大电路了。单级放大...

仙溪
17分钟前
2
0
c++ 上传文件 curl

bool uploadFile(std::string url, std::string file, std::string auth) { boost::filesystem::path p(file); CURL *curl; CURLcode res; struct curl_httppost *for......

青黑
23分钟前
2
0
冒泡与插入排序的代码实现

// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) { if (n <= 1) return; for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位 ...

无名氏的程序员
25分钟前
3
0
centos7.6 +mhvtl1.6安装

以前的mhvtl都是在centos6.x,5.x上安装的mhvtl以前版本为1.4,现在最新的1.6出来,可以安装在centos7.6上,下面是安装过程: 1.安装基础包 centos7.6只要能上外网,默认是配置了yun源的,这些...

突突突酱
27分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部