控件类概述

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" >   <Button       android: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:布局管理器1(线性布局,相对布局RelativeLayout-案例)_第1张图片

更多相关文章

  1. 线性布局LinearLayout和相对布局RelativeLayout 之间的比较
  2. Android布局常用
  3. Android 使用 TableLayout 布局拉伸宽度
  4. Android基本布局-FrameLayout
  5. Android新控件MotionLayout介绍(三)
  6. 后台动态添加布局文件、控件与动态设置属性
  7. Android 百分比布局
  8. Android 在xml布局配置文件中给Button按钮添加事件

随机推荐

  1. Android(安卓)Studio问题之dexDebug
  2. Android调用WCF
  3. Android——CheckBox【复选框】 点击事件
  4. android Studio 低版本升级gradle3.0以上
  5. Android(安卓)模拟MotionEvent事件 触发
  6. RelativeLayout常用属性介绍
  7. Android(安卓)长按setOnItemLongClickLis
  8. Android接口初了解
  9. Android中贪吃蛇游戏的学习(四)
  10. android 网络请求图片