控件类概述

View

可视化控件的基类

属性名称

对应方法

描述

android:background

setBackgroundResource(int)

设置背景

android:clickable

setClickable(boolean)

设置View是否响应单击事件

android:visibility

setVisibility(int)

控制View的可见性

android:focusable

setFocusable(boolean)

控制View是否可以获取焦点

android:id

setId(int)

为View设置标识符,可通过findViewById方法获取

android:longClickable

setLongClickable(boolean)

设置View是否响应长单击事件

android:soundEffectsEnabled

setSoundEffectsEnabled(boolean)

设置当View触发单击等事件时是否播放音效

android:saveEnabled

setSaveEnabled(boolean)

如果未作设置,当View被冻结时将不会保存其状态

android:nextFocusDown

setNextFocusDownId(int)

定义当向下搜索时应该获取焦点的View,如果该View不存在或不可见,则会抛出RuntimeException异常

android:nextFocusLeft

setNextFocusLeftId(int)

定义当向左搜索时应该获取焦点的View

android:nextFocusRight

setNextFocusRightId(int)

定义当向右搜索时应该获取焦点的View

android:nextFocusUp

setNextFocusUpId(int)

定义当向上搜索时应该获取焦点的View

ViewGroup

View的子类,但是它可以充当其他控件的容器
ViewGroup的子控件既可以是普通的View,也可以是ViewGroup。一些高级控件如Gallery、GridView等都是继承自ViewGroup。Android中为每种不同的布局提供一个ViewGroup的子类,如LinearLayout、TableLayout、RelativeLayout、FrameLayout、AbsoluteLayout等。

线性布局android.widget.LinearLayout

参考API:
http://android.toolib.net/reference/android/widget/LinearLayout.html
http://android.toolib.net/reference/android/widget/LinearLayout.LayoutParams.html

LinearLayout是最简单的布局之一,它提供了控件水平或垂直排列的模型,可以通过设置控件的weight参数控制各个控件在容器中的相对大小。LinearLayout布局的属性也是既可以通过布局XML文件设置,也可以通过成员方法进行设置。

LinearLayout常用的属性及对应设置方法

属性名称

对应方法

描述

android:orientation

setOrientation(int)

设置线性布局的朝向,可取horizontal和vertical两种排列方式

android:gravity

setGravity(int)

设置线性布局的内部元素的布局方式

gravity可取的属性及说明

属性值

说明

top

不改变控件大小,对齐到容器顶部

bottom

不改变控件大小,对齐到容器底部

left

不改变控件大小,对齐到容器左侧

right

不改变控件大小,对齐到容器右侧

center_vertical

不改变控件大小,对齐到容器纵向中央位置

center_horizontal

不改变控件大小,对齐到容器横向中央位置

center

不改变控件大小,对齐到容器中央位置

fill_vertical

若有可能,纵向拉伸以填满容器

fill_horizontal

若有可能,横向拉伸以填满容器

fill

若有可能,纵向横向同时拉伸填满容器

相对布局android.widget.RelativeLayout

对应API参考:
http://android.toolib.net/reference/android/widget/RelativeLayout.html
http://android.toolib.net/reference/android/widget/RelativeLayout.LayoutParams.html
奉献一个实例:
XML布局配置
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:gravity="left"android:id="@+id/lls"tools:context=".MainActivity" ><Buttonandroid:id="@+id/button01"android:text="@string/add"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="10dp"/></RelativeLayout>

Activity

package com.example.android_layout;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
/*** Button基本使用方法* 1、添加Button控件到XMl布局文件中* 2、给按钮一个id号,这是按钮唯一的名字* 3、通过程序获取按钮* 4、处理按钮点击*   ①第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法。*   ②另一种方法是典型的事件监听机制的应用形式,使用setOnClickListener添加监听器对象* @author liuxinming**/
public class MainActivity extends Activity {int count = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取屏幕控件Button button = (Button) findViewById(R.id.button01);//添加button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//获取布局管理器RelativeLayout ll = (RelativeLayout) findViewById(R.id.lls);//动态创建button 对象String msg =  MainActivity.this.getString(R.string.app_name);Button tempbutton = new Button(MainActivity.this);tempbutton.setText(msg+(++count));tempbutton.setId(count);/*** LayoutParams继承于Android.View.ViewGroup.LayoutParams.* LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。**********RelativeLayout下动态设置子控件居中**********/RelativeLayout.LayoutParams buttonLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);buttonLayoutParams.addRule(RelativeLayout.BELOW,tempbutton.getId());buttonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); buttonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); tempbutton.setLayoutParams(buttonLayoutParams);ll.addView(tempbutton,buttonLayoutParams);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

上面案例是布局一个按钮,然后通过Activity设置一个监听按钮事件,点击后添加一个新按钮出来

布局API属性比较多,简单弄了下,没有深入写,目前是添加的按钮全部覆盖起来了。哈哈
有需要的朋友,可以自己研究下属性,设置添加后的位置。
测试版本:Android4.3  API18

android开发4:Android布局管理器1(线性布局,相对布局RelativeLayout-案例)相关推荐

  1. java swt 布局管理器_JAVA.SWT/JFace: SWT布局管理器

    7.1 布局管理器概述 FillLayout(充满式布局):在单行或单列中放置相同大小的控件,是最简单的布局. RowLayout(行列式布局):在单行或者多行中放置控件,应用了fill.wrap和s ...

  2. 027-Swing布局管理器(流布局,网格布局,边框布局)

    上一讲:026-为什么要使用接口_CSDN专家-赖老师(软件之家)的博客-CSDN博客 下一讲:028-GUI事件处理,ActionListener事件,MouseListener事件_CSDN专家- ...

  3. java布局管理器的应用总结,GridBagLayout布局管理器的应用

    GridBagLayout布局管理器比较复杂,参数也比较多,参数的名字是 newGridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx, ...

  4. java 网格布局管理器,Java使用网格组布局管理器

    package com.han; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.Grid ...

  5. 移动开发技术(Android)——实验2 Android布局管理器的应用

    移动开发技术(Android)--实验2 Android布局管理器的应用 一.实验目的 二.实验内容 (一)创建一个Android项目,名称为"shiyan0201_专业_×××" ...

  6. Android中的6大布局管理器

    文章目录 6大布局管理器详解 1. LinearLayout 线性布局管理器 2. TableLayout 表格布局管理器 3. GridLayout 网格布局管理器 ~~~~~~~~~~~~~~~~ ...

  7. android被逼学习布局管理器

    先来说说android里面的线性布局吧.线性布局用LinearLayout代表,他不仅可以水平的线性布局,也可以在垂直方向上进行线性布局,使用    android:orientation=" ...

  8. 【android编程】 第三讲-Android布局管理器

    android编程 第三讲 Android布局管理器 文章目录 android编程 第三讲 Android布局管理器 约束布局管理器ConstraintLayout 线性布局管理器LinearLayo ...

  9. Android 布局管理器

    布局管理器:控制组件是如何摆放的. 5种常用的布局管理器: RelativeLayout,相对布局管理器 LineraLayout,线性 FrameLayout,帧 TableLayout,表格 Gr ...

最新文章

  1. 英特尔宣布全新自动驾驶平台整合处理器和视觉芯片
  2. 计算机设备全年销量excel,计算机二级MS-OFFICE考试EXCEL题型汇总附答案.pdf
  3. OS / linux / 互斥锁实现原理(futex)
  4. jQuery 操作 CSS
  5. CentOS7安装redis并配置外网可访问(局域网可参考)
  6. ListView隐藏右侧滚动条,listview去掉分割线,自定义分割线,ListView添加HeaderView和FooterView
  7. 无法运行的愿意_分享减肥食谱一周瘦10斤,你愿意尝试吗?
  8. [Unity] Perfab 和 Scene 中显示的物体局部坐标系的原点不是实际原点
  9. 1.2.1 计算机网络的分层结构、协议、服务和接口(转载)
  10. html网络通信协议设计,智能家居无线网络通讯协议设计方案
  11. PG Vs MySQL ,到底谁更强?
  12. mysql修改数据库与级别_数据库MySQL查看和修改事务隔离级别的实例讲解
  13. 基于点云的骨骼感知三维人体形状重建
  14. QIIME 2教程. 01简介和安装Introduction Install(2021.2)
  15. Python中 实现过采样和下采样
  16. 大行bya412和java513_转:我的折叠生活之大行bya412改装总结
  17. 计算机桌面声音图标,win7桌面右下角的小喇叭音量图标不见了怎么办?
  18. IBM DS3400换电池后报错Individual Drive –Degraded path
  19. Unity 3D模型展示框架篇之自由观察(Cinemachine)
  20. 计算机学域名,计算机域名是什么?有什么用?怎么能知道计算机的域名?

热门文章

  1. 使用基本MVC2模式创建新闻网站
  2. servlet 校验密码
  3. 猜数字游戏,正确率为零
  4. Windows内核执行体对象管理器的操作过程与分析
  5. hibernate框架int和Integer类型区别
  6. Dapper学习笔记(3)-增、删、改、查
  7. Android底部菜单栏 仿微博效果
  8. 一步一步学习C#(一)
  9. MySQL导入sql 文件的5大步骤
  10. OpenCvSharp中CV_8UC1,CV_8UC2等参数的解释