Android的学习第六章(布局一LinearLayout)
今天我们来说一下Android五大布局-LinearLayout布局(线性布局)
含义:线性布局,顾名思义,指的是整个Android布局中的控件摆放方式是以线性的方式摆放的,
主要作用:主要对整个界面进行基本设置使用
重要属性:android:orientation 值:horizontal 元素水平摆放 | vertical 元素垂直摆放
看代码:
<!--
第一个线性布局, 我们可以视为html中的div,用于对于整个界面进行布局
这里面 xmlns:android和xmlns:tools指定的是xml文件的命名空间,不是对布局的主要设置
但是要有
android:layout_width="match_parent"指的是当前的线性布局宽度占整个父元素,这里相对于
当前的线性布局父元素为当前的窗体,所以宽度占满窗体
android:layout_height="match_parent"指的是当前的线性布局高度占整个父元素,这里相对于
当前的线性布局父元素为当前的窗体,所以高度占满窗体
tools:context="com.example.activitylife.MainActivity":用于指定渲染上下文
android:orientation="vertical":指的是当前控件为垂直摆放
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.activitylife.MainActivity"
android:orientation="vertical">
<!--
第二个线性布局,这里我们放置在大的线性布局中,作为子布局使用,设置背景颜色为蓝色
这里面android:layout_width="match_parent"指的是宽度占满父元素LinearLayout的宽度
android:layout_height="100dp"高度占100dp
android:background="@android:color/holo_blue_bright"设置背景色
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@android:color/holo_blue_bright">
</LinearLayout>
<!--
第三个线性布局,这里我们放置在大的线性布局中,作为子布局使用,设置背景颜色为绿色
这里面android:layout_width="match_parent"指的是宽度占满父元素LinearLayout的宽度
android:layout_height="200dp"高度占200dp
android:background="@android:color/holo_green_light"设置背景色
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@android:color/holo_green_light">
</LinearLayout>
</LinearLayout>
整段代码界面效果图是:

只是一段代码和效果图我们不知道怎么做到对一个Android界面的绘制,根据我对线性布局的简单理解,我认为是想用线性布局作出较好的布局效果主要可以这样用
使用线性布局特效对整体的元素进行布局,至于元素与元素之间的微调我们可以通过Margin属性进行微调
下面是一个简答的线性布局模仿微信界面的案例,希望大家能够有所收获

需要用到的字符串资源定义到string.xml文件中

<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">我的微信布局</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string> <!-- 微信第三面板使用 -->
<string name="friendcacl">朋友圈</string>
<string name="saoyisao">扫一扫</string>
<string name="yaoyiyao">摇一摇</string>
<string name="aroundperson">附近的人</string>
<string name="piaoping">漂流瓶</string>
<string name="shop">购物</string>
<string name="game">游戏</string> </resources>
我们需要用到颜色的自定义:在color.xml文件中可以自定义我们需要的颜色

内容代码是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 淡灰 -->
<color name="dangrey">#CCCCCCCC</color>
<!-- 灰色 -->
<color name="grey">#999999</color>
<!-- 浅灰,不清楚,大家自己可以去找颜色的定义 -->
<color name="grey2">#888888</color>
<!-- 绿色 -->
<color name="green">#07bb07</color> </resources>
这里我们要用到样式文件先看样式文件中的定义,打开value中的styles.xml文件,把样式定义在其中

内容代码:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
<!-- 以下是样式的主要布局代码 -->
<!--
myteststyle样式中声明了要用到的样式
android:layout_width:match_parent元素占满父元素
android:layout_marginTop顶部外边距15dp
android:background:背景色为白色
-->
<style name="myteststyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_marginTop">15dp</item>
<item name="android:background">@android:color/white</item>
</style>
<!--
对图片控件的样式设置
android:layout_width:设置宽度
android:layout_height:设置高度
android:background:引入color中的声明为grey的颜色
android:layout_gravity:设置当前元素在父元素的位置为水平居中
-->
<style name="imagestyle">
<item name="android:layout_width">295dp</item>
<item name="android:layout_height">0.5dp</item>
<item name="android:background">@color/grey</item>
<item name="android:layout_gravity">center_horizontal</item>
</style>
<!--
android:layout_width:设置宽度占满父元素
android:layout_height:设置高度40dp
android:background:引入Android内置白色
android:orientation:设置内容水平摆放
-->
<style name="innerstyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">40dp</item>
<item name="android:background">@android:color/white</item>
<item name="android:orientation">horizontal</item>
</style>
</resources>
布局代码:
<!--
外层的线性布局设置为元素垂直摆放
那么当前线性布局中的内容都是垂直的
这里引入了color.xml文件中的淡灰色背景色
-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/dangrey"> <!--
第一个线性布局
style="@style/myteststyle" 引入了我们声明的一个样式
使得这个线性布局是--宽度占满父元素,顶部外边距15dp,背景色白色
而线性布局也有独有的一些属性高度为40dp,内容水平摆放
-->
<LinearLayout
style="@style/myteststyle"
android:layout_height="40dp"
android:orientation="horizontal">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/friendcacl"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="8dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_launcher"/>
</LinearLayout> <!--
第二个线性布局也是引入了之前的myteststyle样式,但是这里高度设置为81dp,里面放置俩个线性布局
内容设置设置为垂直摆放
-->
<LinearLayout
style="@style/myteststyle"
android:layout_height="81dp"
android:orientation="vertical">
<!-- 扫一扫 -->
<!--
引入了style中的innerstyle样式 意思就是
设置宽度占满父元素,设置高度40dp,引入Android内置白色,设置内容水平摆放
-->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/saoyisao"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/>
</LinearLayout> <!-- 中间线条 -->
<!--
这里一个ImageView控件用来代替扫一扫和摇一摇中间的线条,引入了imagestyle样式
设置宽度 295dp设置高度0.5dp,引入color中的声明为grey的颜色
设置当前元素在父元素的位置为水平居中
-->
<ImageView style="@style/imagestyle"/>
<!-- 摇一摇 -->
<!--
与上面的扫一扫同样,引入了innerstyle样式
设置宽度占满父元素,设置高度40dp,引入Android内置白色,设置内容水平摆放
-->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yaoyiyao"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/> </LinearLayout> </LinearLayout> <!--
第三个与上面的线性布局大致都相同了,打击如果能看懂上面的,下面的布局都是相差无几的
-->
<LinearLayout
style="@style/myteststyle"
android:layout_height="81dp"
android:orientation="vertical">
<!-- 附近的人 -->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/shop"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/> </LinearLayout>
<!-- 中间线条 -->
<ImageView style="@style/imagestyle"/>
<!-- 漂流瓶 -->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/game"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/> </LinearLayout> </LinearLayout> <!-- 第四个 -->
<LinearLayout
style="@style/myteststyle"
android:layout_height="81dp"
android:orientation="vertical">
<!-- 附近的人 -->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/aroundperson"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/> </LinearLayout>
<!-- 中间线条 -->
<ImageView style="@style/imagestyle"/>
<!-- 漂流瓶 -->
<LinearLayout style="@style/innerstyle">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/sendmessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/piaoping"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"/>
</LinearLayout> </LinearLayout> </LinearLayout>
以上就是我所做的一个简单的微信页面的简单布局的案例,希望大家能够有所收获,这里本人认为使用线性布局就是使用它将大致布局列举出来然后使用属性来微调,就可以做到大致的布局了
Android的学习第六章(布局一LinearLayout)的更多相关文章
- Android的学习第六章(布局一TableLayout)
今天我们来简单的说一下Android不居中的TableLayout布局(表格布局) 表格布局的意思就是将我们的布局看做为一个表格,主要用于对控件进行整齐排列 我们看一个简单的案例 <TableL ...
- Android的学习第六章(布局二--RelativeLayout)
今天我们来说一下Android布局中的Relativelayout布局(相对布局) 根据英译过来意思是相对布局,很容易理解,这一样布局使用的是元素与元素之间的微调做到布局的 含义:通过元素与元素之间的 ...
- Android Animation学习(六) View Animation介绍
Android Animation学习(六) View Animation介绍 View Animation View animation系统可以用来执行View上的Tween animation和F ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第六章
java学习第六章 本周对与java中的接口,lambda表达式与内部类进行了学习,以下是我在学习中的一些体会: 1.接口: <1>.接口中的所有常量必须是public sta ...
- 【转载】Gradle学习 第六章:构建脚本基础
转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle si ...
- Java基础知识二次学习--第六章 常用类
第六章 常用类 时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...
- C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...
- android 项目学习随笔六(网络缓存)
1. 对SharePreference的封装 import android.content.Context; import android.content.SharedPreferences; /** ...
- 深度学习框架PyTorch一书的学习-第六章-实战指南
参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter6-实战指南 希望大家直接到上面的网址去查看代码,下面是本人的笔记 将上面地 ...
随机推荐
- MyBatis学习总结(一)——MyBatis快速入门(转载)
本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...
- log4j使用快速入门【转】
1.引言 在应用程序中添加日志记录总的来说基于三个目的: .监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作 .跟踪代码运行时轨迹,作为日后审计的依据 .担当集成开发环境中的调 ...
- IOS 开发教程
http://www.raywenderlich.com/category/ios http://www.raywenderlich.com/50310/storyboards-tutorial-in ...
- sql小技巧
--实际只会更新一条.可有效防止误操作.特别是操作线上正式数据时. UPDATE TOP(1) Table2 SET Culumn1='value'WHERE id IN(269102,269104) ...
- 去除select的样式
select::-ms-expand { display: none } .info-select { width: 88px; height: 25px; border: none; outline ...
- ubuntu 上安装字体
http://www.360doc.com/content/11/0901/23/4171006_145128703.shtml http://www.linuxidc.com/Linux/2008- ...
- docker在centos7下的一些坑
在centos的docker上安装mysql提示chown mod /var/lib/mysql permission denied,通过下面的方法1解决. 在centos上挂载数据卷,在容器内部访问 ...
- 基于 Token 的身份验证方法
使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...
- Java语言程序设计(基础篇) 第六章 方法
第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...
- C++学习笔记 知识集锦(二)
1. 命名规范 2. 代码格式 3. QString的判断 4. 对象的判空 5. 隐式接口&显式接口 6. vector&string 7. static 8. const 9. v ...