`

Android UI开发(二)布局管理器之线性布局的3种实现方式

 
阅读更多

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669


LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向(HORIZONTAL)或竖向(VERTICAL)的方式排列,按照相对位置来排列所有的子控件及引用的布局容器。超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个控件或者是引用的布局容器。



一、LinearLayout线性布局的相关属性说明:

android:orientation 布局方向:"vertical"垂直线性布局,"horizontal"水平线性布局
android:id 为控件指定相应的ID
android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符
android:grivity 指定控件的基本位置,比如说居中,居右等位置
android:textSize 指定控件当中字体的大小
android:background 指定该控件所使用的背景色,RGB命名法
android:width 指定控件的宽度
android:height 指定控件的高度
android:padding 指定控件的内边距,也就是说控件当中的内容
android:singleLine 如果设置为真的话,则将控件的内容在同一行当中进行显示
android:layout_weight 默认值为0,layout_weight属性可以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其· 所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。



二、LinearLayout项目演示3种实现方式示例

2.1 第一种实现方式:xml配置实现LinearLayout

<activity_main.xml>

<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"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello!"
        android:textSize="20sp" />

</LinearLayout>


2.2 第二种实现方式:代码实现LinearLayout

<MainActivity.java>

</pre><pre name="code" class="java">/**
 * @author liu
 * @description 代码动态创建线性布局管理器
 */
public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.main);
		LinearLayout layout = new LinearLayout(this);// 创建现行布局管理器
		LinearLayout.LayoutParams params = new LayoutParams(
				ViewGroup.LayoutParams.MATCH_PARENT,
				ViewGroup.LayoutParams.MATCH_PARENT);// 设置线性布局参数
		layout.setOrientation(LinearLayout.VERTICAL);
		TextView txt = new TextView(this);
		LinearLayout.LayoutParams txtParams = new LayoutParams(
				ViewGroup.LayoutParams.MATCH_PARENT,
				ViewGroup.LayoutParams.WRAP_CONTENT);// 设置组件参数
		txt.setLayoutParams(txtParams);
		txt.setText("Hello!");
		txt.setTextSize(20);
		layout.addView(txt, txtParams);
		addContentView(layout, params);

	}
}

2.3 第三种实现方式:自定义实现LinearLayout(继承LinearLayout)

2.3.1、实现效果图(图片旋转)



2.3.2、项目结构图



2.3.3、详细的编码实现

1)继承LinearLayout的子类文件MyLinearLayout.java:

public class MyLinearLayout extends LinearLayout {
	/**
	 * 在xml布局文件中声名的view,创建时由系统自动调用。
	 */
	public MyLinearLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
		initView();
	}

	/**
	 * 初始化LinearLayout视图
	 */
	private void initView() {
		// 设置LinearLayout的布局方向
		setOrientation(LinearLayout.VERTICAL);
		// 设置布局参数
		LinearLayout.LayoutParams params = new LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
		TextView tv = new TextView(getContext());
		tv.setText(R.string.hello_world);
		// 在MyLinearLayout里面添加TextView
		addView(tv, params);
		for (int i = 0; i < 10; i++) {
			ImageView iv = new ImageView(getContext());
			iv.setImageResource(R.drawable.ic_launcher);
			Animation animation1 = AnimationUtils.loadAnimation(getContext(),
					R.anim.rotate);
			iv.setAnimation(animation1);
			// 在MyLinearLayout里面添加10个带动画的ImageView
			addView(iv, params);
		}
	}

	/**
	 * 对子view进行布局,确定子view的位置
	 */
	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		super.onLayout(changed, l, t, r, b);
	}

	/**
	 * 测量尺寸时的回调方法
	 */
	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		super.onMeasure(widthMeasureSpec, heightMeasureSpec);
	}

}

2)主布局资源文件,activity_main.xml:

<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"
    android:orientation="vertical" >

    <com.liu.mylinearlayout01.MyLinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

3)动画文件rotate.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:fillBefore="false" >

    <!--
    	旋转效果,pivotX,pivotY指旋转坐标;
    	fillAfter="true" fillBefore="false" 表示动画停止在最后的位置;
   		fromDegrees toDegrees从0°到350°
		startOffset:延时1s执行
		duration:动画执行时间3s
		repeatCount: 重复次数3+1
    -->
    <rotate
        android:duration="3000"
        android:fromDegrees="0"
        android:pivotX="50%p"
        android:pivotY="20%p"
        android:repeatCount="3"
        android:startOffset="1000"
        android:toDegrees="350" />

</set>

4)、主Activity程序入口类,MainActivity.java:无需修改(按Eclipse自动生成的代码即可)

以上就是笔者知道的LinearLayout的三种实现基本方式。


源码下载地址






分享到:
评论

相关推荐

    Android UI组件布局管理器

    在Android开发中,UI设计是至关重要的,而布局管理器(Layout Manager)则是构建用户界面的核心工具。Android提供了六种主要的布局管理器,每种都有其特定的用途和优势,使得开发者能够根据需求创建出各种各样的界面...

    android UI布局工具

    在Android开发中,UI设计是至关重要的一环,而"android UI布局工具"则为开发者提供了一种更加直观和高效的界面构建方式。传统的Android界面布局通常需要编写XML代码,这种方式虽然灵活,但对初学者或者追求效率的...

    android 仿锤子UI布局

    在Android开发中,锤子手机以其独特的UI设计风格赢得了众多用户的喜爱。为了实现类似锤子UI的布局,开发者需要深入理解Android布局系统,并掌握一些特殊的设计技巧。本篇将主要探讨如何在Android中仿制锤子UI的格子...

    android_UI布局设计.pdf

    ### Android UI布局设计详解 #### 一、引言 在Android应用开发中,用户界面(User Interface, UI)设计是至关重要的环节之一。良好的UI不仅能够提升用户体验,还能增强应用的吸引力。本文旨在深入探讨Android UI布局...

    Android布局管理器

    【Android布局管理器】是Android应用开发中的核心概念,它决定了UI组件在屏幕上的排列方式。在Android中,布局管理器主要有五种类型:线性布局(LinearLayout)、表格布局(TableLayout)、相对布局(RelativeLayout...

    android线性布局开发文档

    在Android应用开发中,线性布局(LinearLayout)是开发者最常用的一种布局管理器。它按照垂直或水平方向来排列子视图(View),使得每个子视图都沿着一个单一的轴线排列。线性布局简单易用,适用于创建简单的用户...

    android布局管理器代码

    在Android开发中,布局管理器是构建用户界面(UI)的关键元素。它们负责组织和定位UI组件,确保屏幕上的元素合理、美观地排列。本文将深入探讨Android中的常见布局管理器,尤其是基于XML的布局,以及如何在Activity...

    021 _UI_布局 之 线性布局 xml配置方式

    线性布局(LinearLayout)是Android开发中非常基础且常用的布局管理器,主要用于组织应用程序界面中的View组件,如按钮、文本框等。它按照垂直或水平方向将子视图排列成一条直线,支持单行或多列展示。在XML配置文件...

    Android开发——布局管理

    在Android应用开发中,布局管理(Layout Management)是构建用户界面(UI)的关键部分,它决定了应用程序中的元素如何排列和相互作用。布局是XML文件,通常位于`res/layout`目录下,它们定义了屏幕上的视图(View)...

    第3章 Android UI开发 -3.1Android UI布局代码(1).zip

    本章我们将深入探讨Android UI开发中的布局管理,主要聚焦在3.1部分,即Android UI布局代码。在这个压缩包中,包含了多个源代码文件和布局资源文件,这些都是构建Android UI的基础元素。 首先,我们来看`...

    安卓Android源码——ui开发类库示例源码.zip

    3. **布局管理器**:Android支持线性布局(LinearLayout)、相对布局(RelativeLayout)、网格布局(GridLayout)、帧布局(FrameLayout)等。这些布局管理器帮助组织和定位屏幕上的各个组件,实现复杂界面的设计。 ...

    android UI界面编辑器

    2. **布局管理器**:支持线性布局、相对布局、约束布局、网格布局等多种布局方式,帮助开发者灵活组织控件的排列和对齐。 3. **属性编辑器**:提供详细控件属性设置,如颜色、字体、大小、边距等,同时支持实时预览...

    线性布局之嵌套布局

    线性布局(LinearLayout)是Android开发中常用的布局方式之一,它允许我们将组件按照垂直或水平方向进行排列。在某些复杂的用户界面设计中,一个简单的线性布局可能无法满足所有需求,这时就需要用到嵌套布局,即将...

    UI.rar_android_android layout_android ui 布局_android widget_andro

    有五种主要的布局管理器:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、网格布局(GridLayout)和约束布局(ConstraintLayout)。线性布局按照垂直或水平方向排列元素;相对布局...

    android的线性布局

    在Android开发中,线性布局(LinearLayout)是基础且至关重要的布局管理器,它用于组织UI元素(如按钮、文本视图等)沿单一方向排列,可以是垂直或水平。本篇文章将深入探讨线性布局的使用方法、属性以及如何在实际...

    022 _UI_布局之线性布局-动态生成与LayoutInflater

    线性布局(LinearLayout)是Android开发中常用的一种布局方式,它允许我们将视图(View)按照垂直或水平的方向进行排列。在本视频教材"022 UI 布局之线性布局-动态生成与LayoutInflater"中,我们将深入探讨如何灵活...

    UI.rar_android_android studio_android ui_android ui 布局_页面

    在Android开发中,UI设计是至关重要的,因为它直接影响到用户对应用的第一印象和使用体验。Android Studio是Google官方推荐的集成开发环境(IDE),用于构建Android应用,包括UI设计。本压缩包“UI.rar”似乎包含了...

    android基本的UI控件和布局文件知识要点

    1. **LinearLayout**:线性布局,控件沿水平或垂直方向排列。 - **android:orientation**:指定控件的排列方向,可设为`horizontal`(水平排列)或`vertical`(垂直排列)。 - **android:layout_width**/`android:...

Global site tag (gtag.js) - Google Analytics