第21/22讲 UI_布局 之 线性布局
第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_布局 之 线性布局的更多相关文章
- Android:控件布局(线性布局)LinearLayout
LinearLayout是线性布局控件:要么横向排布,要么竖向排布 决定性属性:必须有的! android:orientation:vertical (垂直方向) .horizontal(水平方向) ...
- android布局之线性布局
LinearLayout 线性布局有两种,分别是水平线性布局和垂直线性布局,LinearLayout属性中android:orientation为设置线性布局当其="vertical&quo ...
- Android 布局(线性布局、相对布局)
一.线性布局(LinearLayout) <LinearLayout****</LinearLayout>1. orientation(布局方向)value=0 horizontal ...
- Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)
线性布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...
- Android -- UI布局管理,相对布局,线性布局,表格布局,绝对布局,帧布局
1. 相对布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- Android布局之线性布局——LinearLayout
本文将详细介绍线性布局的各种xml属性. xml属性 <?xml version="1.0" encoding="utf-8"?> <Line ...
- 《Tsinghua os mooc》第21~22讲 文件系统
第二十一讲 文件系统 文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能. 组织.检索.读写访问数据 大多数计算机系统都有文件系统 Google 也是一个文件系统 文件是具有符号名,由 ...
- android的布局-----LinearLayout(线性布局)
学习导图(图片在网上下载) 知识点详解(演示效果方便组件没有设置id) (1)gravity和Layout_gravity android:gravity 属性是对该view中内容的限定.比如一个bu ...
- Android开发之线性布局详解(布局权重)
布局权重 线性布局支持给个别的子视图设定权重,通过android:layout_weight属性.就一个视图在屏幕上占多大的空间而言,这个属性给其设 定了一个重要的值.一个大的权重值,允许它扩大到填充 ...
随机推荐
- Javascript:getElementsByClassName
背景: 由于原生的getElementsByClassName不支持在指定标签中查找指定元素为指定class的情况,所以,这里舍弃了原生的方法调用 方法一: function getElement ...
- 【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息
尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟 ...
- 基于mapreducer的图算法
作者现就职阿里巴巴集团1688技术部 引言 周末看到一篇不错的文章"Graph Twiddling in a MapReduce world" ,介绍MapReduce下一些图算法 ...
- 设计模式(3)-对象创建型模式-Abstract Factory模式
1.对象创建型模式 1.3 Abstract Factory模式 1.3.1 需求 在下面情况能够使用Abstract Factory模式: • 一个系统要独立于它的产品的创建. ...
- 如何使用easyUI
一.简介 以下内容来自百度: jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的 目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不 ...
- springmvc中项目启动直接调用方法
1. <servlet> <servlet-name> AutoServlet </servlet-name> <servlet-class> com. ...
- fstab的格式
# /etc/fstab/dev/hda8 swap swap defaults 0 0/dev/hda9 / ext2 defaults 1 1/dev/hda6 /wine vfat defaul ...
- 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...
- js 日期控件 可以显示为和历
日期控件的js <!-- /** * Calendar * @param beginYear 1990 * @param endYear 2010 * @param language 0(zh_ ...
- RMQ问题
关于RMQ的问题我就直接截取刘汝佳的<算法竞赛训练指南>上的解释了