Android简单控件的开发及应用

Android简单控件的开发及应用
Android简单控件的开发及应用

第2章 Android简单控件的开发及应用

本章中,将主要向读者介绍Android平台下简单的控件以及五种布局的开发与应用。其中控件主要包括Button、TextView、ImageView、ImageButton、EditText等简单控件。布局包括线性布局、相对布局、帧布局、表格布局和绝对布局。

2.1 Button按钮应用

在本小节的程序中,主要向读者介绍的是Button按钮的应用。

(1) 实例概述

Button按钮是最常见的控件,本程序主要是添加一个Button按钮,单击按钮出Toast提示。

(2) 运行效果

本案例的运行效果图,如图2-1所示:

图2-1 Button按钮

提示:该应用开始运行时首先进入的界面如图2-1所示,单击按钮,即会弹出Toast提示。

(3) 技术概要

本程序添加一个Button按钮,单击按钮可以弹出Toast提示。

(4) 核心代码

首先为读者介绍的是本程序的主界面的main.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_1/ res/layout目录下的main.xml。

第18章 常用插件扩展点

·217·1

2

3 android:orientation="vertical"

4 android:layout_width="fill_parent"

5 android:layout_height="fill_parent"

6 >

7

8 android:text="@string/button1"

9 android:id="@+id/Button01"

10 android:layout_width="wrap_content"

11 android:layout_height="wrap_content">

12

13

提示:上面的xml 文件为本项目的主界面的文件。

上面已经介绍了本程序的主界面main.xml 的开发,接下来将为读者介绍的是本程序的具体功能的实

现,代码如下。 代码位置:见随书光盘中源代码/第2章/Sample2_1/ src/com/bn/es2a 目录下的Sample2_1_Activity 。

1 package com.bn.es2a; //声明包

2 ……//该处省略了部分类的导入,读者可自行查看随书光盘中源代码

3 import android.widget.*; //导入相关类

4 public class Sample2_1_Activity extends Activity{ //创建继承Activity 的类

5

@Override 6

public void onCreate(Bundle savedInstanceState){ //重写的方法 7

super.onCreate(savedInstanceState); //调用父类 8

setContentView(https://www.360docs.net/doc/5312550756.html,yout.main); //跳转到主界面 9

final Button button = (Button) findViewById(R.id.Button01); //获得Button 引用 10

button.setOnClickListener( //OnClickListener 事件 11

new OnClickListener(){ 12

public void onClick(View v){ //重写的onClick 方法 13

Toast.makeText(Sample2_1_MyActivity.this, //弹出Toast 14 "按钮单击",

15

Toast.LENGTH_SHORT).show();

16} } ); } } ? 第8行表示的是跳转到主界面。

? 第9-16行表示的是对按钮的监听,单击按钮弹出Toast 提示。

2.2 LinearLayout ——线性布局的应用

在本小节中,通过LinearLayout 线性布局的应用,构建了一个小型的计算器界面。该计算器实现了

整数间的加减乘除四则运算。并通过本计算器的实现,向读者介绍LinearLayout 线性布局的具体应用。

(1) 实例概述

在本小节中实现了小型计算器软件的开发。该计算器通过0~9这10个数字按钮,加、减、乘、除

与等于五个运算按钮,以及清空按钮来实现对本程序的操控,并通过一个文本框来显示计算的结果。应用本程序可以进行整数间简单的加、减、乘、除四则运算。

Eclipse 从入门到精通

·218· (2) 运行效果

本案例的运行效果图,如图

2-2所示:

图2-2 小型计算器 提示:使用者可以通过单击数字输入第一个计算值,然后单击所需计算按钮确定计算方式,再通过

单击数字输入第二个计算值,之后当再次单击等于按钮时,软件会自动计算出结果数值,如图2-2所示。

(3) 技术概要

小型计算器的开发,主要运用了LinearLayout 线性布局的相关知识。线性布局是最简单的布局之一,

其提供了控件水平或者垂直排列的模型。同时,使用此布局时可以通过设置控件的weight 参数控制各个控件在容器中的相对大小。

提示:线性布局垂直时占用一列,水平时占用一行。特别要注意的是,水平时若超过一行则不会像

SE 中的FlowLayout 一样自动转行。

线性布局中可以使用gravity 属性设置控件的对齐方式,详情如表2.1所列。

表2.1 线性布局gravity 属性表 属性名称

属性说明 Top

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

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

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

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

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

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

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

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

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

提示:当需要使用多个属性时,用“|”分隔开即可。

(4) 核心代码

第18章常用插件扩展点·219·

首先为读者介绍的是小型计算器的主界面mian.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_2/ res/layout目录下的main.xml。

encoding="utf-8"?>

1

version="1.0"

xmlns:android="https://www.360docs.net/doc/5312550756.html,/apk/res/android"

2

3 android:orientation="vertical" android:layout_width="fill_parent"

4 android:layout_height="fill_parent" android:paddingTop="5dip">

5

6 android:id="@+id/tv" android:layout_width="fill_parent"

7 android:layout_height="40dip" android:layout_marginRight="5dip"

android:background="#FFFFFF"

8 android:layout_marginLeft="5dip"

android:textSize="30dip"

9 android:gravity="center_vertical|right"

10 android:textColor="#ff0000">

11

12

13 android:orientation="horizontal" android:layout_width="fill_parent"

14 android:layout_height="wrap_content" android:paddingTop="5dip">

15

16 android:text="7" android:id="@+id/Button07"

17 android:layout_width="80dip" android:layout_height="wrap_content"/>

18

19 android:text="8" android:id="@+id/Button08"

20 android:layout_width="80dip" android:layout_height="wrap_content"/>

21

22 android:text="9" android:id="@+id/Button09"

23 android:layout_width="80dip" android:layout_height="wrap_content"/>

24

25 android:text="+" android:id="@+id/ButtonJia"

26 android:layout_width="80dip" android:layout_height="wrap_content"/>

27

28

29 android:orientation="horizontal" android:layout_width="fill_parent"

30 android:layout_height="wrap_content" android:paddingTop="5dip">

31

32 android:text="4" android:id="@+id/Button04"

33 android:layout_width="80dip" android:layout_height="wrap_content"/>

34

35 android:text="5" android:id="@+id/Button05"

36 android:layout_width="80dip" android:layout_height="wrap_content"/>

37

38 android:text="6" android:id="@+id/Button06"

39 android:layout_width="80dip" android:layout_height="wrap_content"/>

40

41 android:text="-" android:id="@+id/ButtonJian"

42 android:layout_width="80dip" android:layout_height="wrap_content"/>

布局--> 43

·220·

Eclipse从入门到精通

49 android:layout_width="80dip" android:layout_height="wrap_content"/>

50

51 android:text="2" android:id="@+id/Button02" android:layout_width="80dip"

52 android:layout_height="wrap_content"/>

53

54 android:text="3" android:id="@+id/Button03"

55 android:layout_width="80dip" android:layout_height="wrap_content"/>

56

57 android:text="*" android:id="@+id/ButtonCheng"

58 android:layout_width="80dip" android:layout_height="wrap_content"/>

布局-->

59

75

第18章 常用插件扩展点

·221·15 flag=0; //标志为为0 16 } } );

17 for(int i=0;i

18 temp=(Button)findViewById(buttons[i]); //初始化按钮

19 temp.setOnClickListener( //为Button 添加监听器

20 new OnClickListener(){ //内部类

21 @Override

22 public void onClick(View v){ //重写的方法

23 str1=tv.getText().toString().trim(); //得到TextView 中的字符串

24 str1=str1+String.valueOf(((Button)v).getText());//获得新输入的值

25 tv.setText(str1); //设置TextView

26 } } ); }

27 buttonListener(buttonJia,1); //加号的监听器

28 buttonListener(buttonJian,2); //减号的监听器

29 buttonListener(buttonCheng,3); //乘号的监听器

30 buttonListener(buttonChu,4); //除法的监听器

31 buttonDengyu.setOnClickListener( //等号的监听器

32 new OnClickListener(){ //内部类

33

@Override 34

public void onClick(View v){ //重写的方法 35

result1=Integer.parseInt(str1); //字符串转换为int 类型 36

if(flag==1){ //判断flag 是否为1 37

result=result0+result1; //实现加法 38

System.out.println(result0+":"+result1); 39

}else if(flag==2){ //判断flag 是否为2 40

result=result0-result1; //实现减法 41

}else if(flag==3){ //判断flag 是否为3 42

result=result0*result1; //实现乘法 43

}else if(flag==4){ //判断flag 是否为4 44 result=(int)(result0/result1);

//实现除法 45 } 46 String str=(result+"").trim();

//运算结果转换为字符串 47 tv.setText(str);

//设置TextView 的显示值 48 } } ); } 49 public void initButton(){

//初始化控件资源 50 ......//初始化控件的方法,读者可自行查看随书光盘中源代码

51 }

52 public void buttonListener(Button button,final int id){ //对按钮实现监听的方法

53 button.setOnClickListener( //设置监听

54 new OnClickListener(){

55 public void onClick(View v){ //重写onClick 方法

56 String str=tv.getText().toString().trim(); //得到TextView 的字符串

57 result0=Integer.parseInt(str); //转换为整型

58 tv.setText(""); //清空

59 flag=id; //设定flag 的值

60 } } ); } }

? 第10-16行表示的是对计算器的清空按钮的监听,并且实现清空功能。

? 第17-26行表示的是对计算器的九个值的按键进行监听。

? 第31-48行表示的是对计算器的等号的监听,并且实现基本的四则运算。

Eclipse 从入门到精通

·222· 第52-60行表示的是计算器的运算符按钮的监听。

2.3 RelativeLayout ——相对布局的应用

在本小节中,通过RelativeLayout 相对布局的应用,构建了一个为图片添加说明的小程序的界面。

本程序可以在图片的上、下、左、右为图片添加说明信息。通过本程序的实现,读者可以了解到RelativeLayout 相对布局的具体应用。

(1) 实例概述

在本小节中实现了对图片不同位置添加说明信息的小程序,通过单击位于主界面上、下、左、右的

四个按钮,可以在图片对应的位置添加文本编辑框,进而为图片输入说明信息。

(2) 运行效果

本案例的运行效果图,如图

2-3所示:

图2-3 为图片添加说明小软件截图 提示:本程序的功能是为图片添加图片说明,可以在图片的上侧、下侧、左侧、右侧添加说明信息。

如单击下按钮,则会在图片下方弹出文本编辑框,用于添加图片说明信息,如图2-3所示。

(3) 技术概要

该小程序的开发主要运用了RelativeLayout 相对布局的相关知识。相对布局的容器中控件会根据所

设置的参照控件和参数进行相对布局。参照控件可以是上层容器,也可以是本层的兄弟控件。但要注意的是,被参照的控件必须要在参照其的控件前定义。

进行相对布局时可能用到的属性有很多,但都不复杂,首先看属性值为true 或false 的属性。如表

2.2所列。

表2.2 RelativeLayout 相对布局属性表1 属性名称

属性说明 layout_centerHorizontal

当前控件位于父控件的横向中间位置

第18章常用插件扩展点·223·

layout_centerVertical 当前控件位于父控件的纵向中间位置

layout_centerInParent 当前控件位于父控件的中央位置

layout_alignParentBotton 当前控件低端与父控件低端对齐

layout_alignParentLeft 当前控件左侧与父控件左侧对齐

layout_alignParentRight 当前控件右侧与父控件右侧对齐

layout_alignParentTop 当前控件顶端与父控件顶端对齐

layout_alignWithParentIfMissing 参照控件不存在或不可见时参照父控件提示:上述属性使用时全部需要都要加上“android:”前缀。

接着再看属性值为其他控件id的属性。如表2.3所列。

表2.3 RelativeLayout相对布局属性表2

属性名称属性说明

layout_toRightOf 使当前控件位于给出id控件的右侧

layout_toLeftOf 使当前控件位于给出id控件的左侧

layout_above 使当前控件位于给出id控件的上侧

layout_below 使当前控件位于给出id控件的下侧提示:上述属性使用时也需要全部加上“android:”前缀。

最后看属性值以像素为单位的属性。如表2.4所列。

表2.4 RelativeLayout相对布局属性表3

属性名称属性说明

layout_marginLeft 当前控件左侧的留白

layout_marginRight 当前控件右侧的留白

layout_marginTop 当前控件上方的留白

layout_marginBottom 当前控件下方的留白

提示:上述属性使用时也需要全部加上“android:”前缀。

(4) 核心代码

首先为读者介绍的是本程序的主界面main.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_3/ res/layout目录下的main.xml。

encoding="utf-8"?>

version="1.0"

1

xmlns:android="https://www.360docs.net/doc/5312550756.html,/apk/res/android"

2

3 android:id="@+id/rl"

4 android:layout_width="fill_parent"

5 android:layout_height="fill_parent"

6 android:background="#edab4a"

7 >

8

9 android:text="上"

android:id="@+id/Shang"

10

android:layout_width="wrap_content"

11

android:layout_height="wrap_content"

12

android:layout_alignParentTop="true"

13

android:layout_centerHorizontal="true"

14

15 >

16

·224·

Eclipse从入门到精通

17

18

android:text="下"

android:id="@+id/Xia"

19

android:layout_width="wrap_content"

20

android:layout_height="wrap_content"

21

android:layout_alignParentBottom="true"

22

android:layout_centerHorizontal="true"

23

24 >

25

26

android:text="左"

27

android:id="@+id/Zuo"

28

android:layout_width="wrap_content"

29

android:layout_height="wrap_content"

30

android:layout_alignParentLeft="true"

31

android:layout_centerVertical="true"

32

33 >

34

35

android:text="右"

36

android:id="@+id/You"

37

android:layout_width="wrap_content"

38

android:layout_height="wrap_content"

39

android:layout_alignParentRight="true"

40

android:layout_centerVertical="true"

41

42 >

43

44

android:src="@drawable/fengjing"

45

android:id="@+id/Start"

46

android:layout_width="60dip"

47

android:layout_height="100dip"

48

49

android:layout_centerInParent="true"

50 >

51

52

提示:在该xml文件中实现了该程序的布局。总的布局为RelativeLayout布局,其中排列了四个Button 按钮和一个ImageView。通过对各个控件的属性设置,实现了本计算器软件的界面效果。

上面已经介绍了本程序的主界面main.xml的开发,接下来为读者介绍的是本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_3/src/com/bn/ex2c目录下的Sample2_3_Activity.class。

ex2c; //包名

1 package

com.bn.

android.app.Activity; //导入相关类

2 import

3 public class Sample2_3_Activity extends Activity {

4 RelativeLayout rl; //相对布局对象

5 Button shang; //上侧按钮

6 Button xia; //下侧按钮

7 Button zuo; //左侧按钮

第18章 常用插件扩展点

·225·8 Button you; //右侧按钮

9 ImageView currButton; //记录当前ImageView

10 ImageView start; //ImageView 对象

11

public void onCreate(Bundle savedInstanceState) { 12

super.onCreate(savedInstanceState); //调用父类 13

setContentView(https://www.360docs.net/doc/5312550756.html,yout.main); //界面跳转到主界面 14

rl=(RelativeLayout)this.findViewById(R.id.rl); //获取布局对象 15

shang=(Button)this.findViewById(R.id.Shang); //获取当前控件 16

xia=(Button)this.findViewById(R.id.Xia); //下面的按钮 17

zuo=(Button)this.findViewById(R.id.Zuo); //左侧的按钮 18

you=(Button)this.findViewById(R.id.You); //右侧的按钮 19

start=(ImageView)this.findViewById(R.id.Start); //中间的图片 20

currButton=start; //规定当前ImageView 21 shang.setOnClickListener( //监听

22 new OnClickListener(){

23 public void onClick(View v) {

24 EditText temp=new EditText(Sample2_3_Activity.this); //添加新的EditText

25 temp.setText("图片说明"); //设置信息

26 https://www.360docs.net/doc/5312550756.html,youtParams lp1 = //设置控件位置

27 new https://www.360docs.net/doc/5312550756.html,youtParams(https://www.360docs.net/doc/5312550756.html,youtParams.WRAP_CONTENT, 95);

28 lp1.addRule(RelativeLayout.ABOVE,currButton.getId());

29 lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, currButton.getId());

30 rl.addView(temp, lp1); //将控件添加到布局中

31 }});

32 xia.setOnClickListener( //设这监听

33 new OnClickListener(){

34 public void onClick(View v) { //重写onClick 方法

35 EditText temp=new EditText(Sample2_3_Activity.this); //添加新的EditText

36 temp.setText("图片说明");

37 https://www.360docs.net/doc/5312550756.html,youtParams lp1 = //设置控件位置

38 new https://www.360docs.net/doc/5312550756.html,youtParams(https://www.360docs.net/doc/5312550756.html,youtParams.WRAP_CONTENT, 95);

39 lp1.addRule(RelativeLayout.BELOW,currButton.getId());

40 lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, currButton.getId());

41 rl.addView(temp, lp1); //将控件添加到布局中

42 }});

43 zuo.setOnClickListener( //设置监听

44 new OnClickListener(){

45 public void onClick(View v) { //重写onClick 方法

46 EditText temp=new EditText(Sample2_3_Activity.this); //添加新的EditText

47 temp.setText("图片说明"); //设置为本框的文字

48 https://www.360docs.net/doc/5312550756.html,youtParams lp1 = //设置控件位置

49 new https://www.360docs.net/doc/5312550756.html,youtParams(95,https://www.360docs.net/doc/5312550756.html,youtParams.WRAP_CONTENT);

50 lp1.addRule(RelativeLayout.LEFT_OF,currButton.getId());

51 lp1.addRule(RelativeLayout.CENTER_VERTICAL, currButton.getId());

52 rl.addView(temp, lp1); //将控件添加到布局中

53 }});

54 you.setOnClickListener( //单击"右"键时,在currButton 下方添加新控件

55 new OnClickListener(){

56 public void onClick(View v) {

57 EditText temp=new EditText(Sample2_3_Activity.this);//添加新的EditText

Eclipse 从入门到精通

·226· 58 temp.setText("图片说明");

59 https://www.360docs.net/doc/5312550756.html,youtParams lp1 = //设置控件位置

60 new https://www.360docs.net/doc/5312550756.html,youtParams(95,https://www.360docs.net/doc/5312550756.html,youtParams.WRAP_CONTENT);

61 lp1.addRule(RelativeLayout.RIGHT_OF,currButton.getId());

62 lp1.addRule(RelativeLayout.CENTER_VERTICAL, currButton.getId());

63 rl.addView(temp, lp1); //将控件添加到布局中

64

}});

65 }} ? 第4~10行,为声明该类的成员变量。包括界面的控件对象和布局对象。

? 第14~20行,为获取界面控件和布局资源。

? 第21~65行,为上、下、左、右四个按钮添加监听器,当单击按钮时,在布局中的相应位置添

加新的EditText 控件,并设置该控件的属性。

2.4 FrameLayout ——帧布局的应用

在本小节中,通过FrameLayout 帧布局的应用,构建了一个饮食介绍的界面。并通过本程序的实现,

来向读者介绍FrameLayout 帧布局的具体应用。

(1) 实例概述

该小节构建了一个饮食介绍的小程序,在本程序中可以显示需要的信息。在网页的右下角有一个退

出按钮,单击退出按钮即可退出网页。

(2) 运行效果

本案例的运行效果图,如图2-4所示:

图2-4 饮食介绍小网页

提示:本程序功能是显示信息到主界面,并且可以单击退出按钮退出本程序,如图2-4所示。

(3) 技术概要

第18章常用插件扩展点·227·

本程序的开发主要运用了FrameLayout帧布局的相关知识。帧布局是最简单的布局之一,采用帧布局的容器中无论放入多少个控件,控件默认情况下左上角都对齐到容器的左上角。如果控件一样大,同一时刻只能见到最上面的。

(4) 核心代码

首先为读者介绍的是本程序的主界面main.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_4/ res/layout目录下的main.xml。

1

xmlns:android="https://www.360docs.net/doc/5312550756.html,/apk/res/android"

2

3 android:layout_width="fill_parent"

4 android:layout_height="fill_parent"

5 android:background="#edab4a"

6 android:id="@+id/fl">

7

8 android:orientation="vertical"

9 android:layout_width="fill_parent"

android:layout_height="fill_parent"

10

11

android:id="@+id/cc">

12

android:orientation="horizontal"

13

android:layout_width="fill_parent"

14

android:layout_height="40dip"

15

android:id="@+id/tt"

16

android:background="@drawable/title">

17

18

android:text=

19

20 "土豆白菜汤的做法 … …"

android:layout_width="fill_parent"

21

android:layout_height="wrap_content"

22

android:id="@+id/t"

23

android:textColor="#FF0000"

24

android:gravity="center"

25

android:textSize="30dip">

26

27

28

29

android:orientation="horizontal"

30

31

android:gravity="center_horizontal"

android:layout_width="fill_parent"

32

android:layout_height="wrap_content"

33

android:id="@+id/tt">

34

35

..."

36

android:text="...

android:layout_width="fill_parent"

37

android:layout_height="wrap_content"

38

android:id="@+id/t"

39

android:textColor="#FF0000">

40

41

42

·228·

Eclipse从入门到精通

43

44

android:layout_width="fill_parent"

45

android:layout_height="fill_parent"

46

android:id="@+id/lllll"

47

android:gravity="bottom|right">

48

49

android:text="退出"

50

51

android:id="@+id/b"

android:layout_width="wrap_content"

52

android:layout_height="wrap_content">

53

54

55

56

提示:在该xml文件中实现了布局的设置。总的布局为FrameLayout布局,其中包括一个垂直模式的LinearLayout线性布局和一个gravity设置为bottom和right的LinearLayout线性布局。通过对各个控件的属性设置,实现了该小软件的界面效果。

上面已经介绍了本程序的主界面main.xml的开发,接下来为读者介绍的是本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_4/src/com/bn/ex2d目录下的Sample2_4_Activity.class。

ex2d; //包名

com.bn.

1 package

android.app.Activity; //包引用声明,该处有所省略,读者可自行查看源代码

2 import

3 public class Sample2_4_Activity extends Activity { //该类继承自Activity类

4 public void onCreate(Bundle savedInstanceState) { //onCreate方法

5 super.onCreate(savedInstanceState); //继承父类的onCreate方法

6 setContentView(https://www.360docs.net/doc/5312550756.html,yout.main); //界面跳转到main.xml界面

7 Button b=(Button)this.findViewById(R.id.b); //获取Button按钮

8 b.setOnClickListener( //为Button按钮添加监听器

9 new OnClickListener(){

v)

{

onClick(View

public

10

void

11 System.exit(0); //当单击按钮时,退出程序

12 }}

13 );

14 }}

提示:在Activity类中,获取了按钮对象,并对其添加了按钮监听器,实现了单击按钮后退出程序的功能。

2.5 TableLayout——表格布局的应用

在本小节中,通过TableLayout表格布局的应用,构建了一个显示学生信息表的界面。并通过对本程序的具体功能的实现,来向读者介绍TableLayout表格布局的具体应用。

(1) 实例概述

本小节构建了一个显示学生信息表小程序,在该本程序中可以显示不同的同学的一些基本信息。包

第18章 常用插件扩展点

·229·

括学生的学号、姓名和籍贯等信息。

(2) 运行效果

本案例的运行效果图,如图2-5所示:

图2-5 学生信息表截图

提示:在图2-5中,首先是“学生信息表”表头,在表头下面是字段名称部分,在字段名称下面是

表中的一些基本信息。

(3) 技术概要

本程序的开发主要运用了TableLayout 表格布局的相关知识。表格布局以行和列的形式管理控件,

每行为一个TableRow 对象,也可以是一个View 对象。TableRow 可以添加子控件,每次添加一个子控件即为一列。

(4) 核心代码

首先为读者介绍的是本程序的主界面main.xml 的开发,代码如下。 代码位置:见随书光盘中源代码/第2章/Sample2_5/ res/layout 目录下的main.xml 。

1

2

3 android:layout_width="fill_parent" android:layout_height="fill_parent"

4 android:background="#edab4a"

5 android:stretchColumns="0,1,2" android:shrinkColumns="1,2" >

6

7 android:text="学生信息表"

8 android:gravity="center" android:id="@+id/tv1"

9 android:textColor="#FF0000" android:textSize="30dip"

10 android:background="#184124"/>

11

12

13 android:layout_column="0" android:text="学号"

14 android:gravity="center" android:textColor="#FF0000"

Eclipse 从入门到精通

·230· 15 android:background="#182241" android:layout_margin="4dip"/>

16

17 android:layout_column="1" android:text="姓名"

18 android:gravity="center" android:textColor="#FF0000"

19 android:background="#182241" android:layout_margin="4dip"/>

20

21 android:text="籍贯" android:gravity="center"

22 android:textColor="#FF0000" android:background="#182241"

23 android:layout_margin="4dip"/>

24

25

26

27 android:text=" 20100101 " android:gravity="center"

28 android:textColor="#FF0000" android:background="#182241"

29 android:layout_margin="4dip"/>

30

31 android:text="张三" android:gravity="left"

32 android:textColor="#FF0000" android:background="#182241"

33 android:layout_margin="4dip"/>

34

35 android:text="河北省石家庄市" android:gravity="right"

36 android:textColor="#FF0000" android:background="#182241"

37 android:layout_margin="4dip"/>

38

39

40

41 android:text=" 20100102 " android:gravity="center"

42 android:textColor="#FF0000" android:background="#182241"

43 android:layout_margin="4dip"/>

44

45 android:text="李四" android:gravity="left"

46 android:textColor="#FF0000" android:background="#182241"

47 android:layout_margin="4dip"/>

48

49 android:text="内蒙古呼和浩特市" android:gravity="right"

50 android:textColor="#FF0000" android:background="#182241"

51 android:layout_margin="4dip"/>

52

53

54

55 android:text="20100103" android:gravity="center"

56 android:textColor="#FF0000" android:background="#182241"

57 android:layout_margin="4dip"/>

58

59 android:text="王五" android:gravity="left"

60 android:textColor="#FF0000" android:background="#182241"

61 android:layout_margin="4dip"/>

62

63 android:text="广州" android:gravity="right"

64 android:textColor="#FF0000" android:background="#182241"

第18章常用插件扩展点·231· android:layout_margin="4dip"/>

65

66

67

提示:在该xml文件中实现了布局的设置。总的布局为TableLayout布局。在总布局中,应用了4个TableRow来创建4行表数据。并通过对各个控件的属性设置,实现了该小软件的界面效果。

上面已经介绍了本程序的主界面main.xml的开发,接下来为读者介绍本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_5/src/com/bn/ex2e目录下的Sample2_5_Activity.class。

ex2e; //包名

com.bn.

1 package

android.app.Activity; //包引用声明

2 import

android.os.Bundle;

3 import

4 public class Sample2_5_Activity extends Activity { //该类继承了Activity类

5 public void onCreate(Bundle savedInstanceState) { //实现onCreate()方法

6 super.onCreate(savedInstanceState); //继承父类的onCreate()方法

//将界面跳转到main.xml界面

7 setContentView(https://www.360docs.net/doc/5312550756.html,yout.main);

8 }}

提示:该类主要实现了main.xml界面的显示工作。

2.6 AbsoluteLayout——绝对布局的应用

在本小节中,通过AbsoluteLayout绝对布局的应用,构建了一个软件登陆界面。并通过本程序的实现,来向读者介绍AbsoluteLayout绝对布局的具体应用。

(1) 实例概述

本节中,构造了一个软件登陆界面,在该界面中,可以输入姓名和密码,单击确定按钮,可以将所输入的姓名和密码显示到填写到界面下方的文本编辑框中。单击取消,则会清空所填写的姓名和密码。

(2) 运行效果

本案例的运行效果图,如图2-6所示:

Eclipse 从入门到精通

·

232·

图2-6 软件登陆界面截图 提示:在图2-6中,实现了简单地输入数据并存储数据的功能。

(3) 技术概要

本程序的开发主要运用了AbsoluteLayout 绝对布局的相关知识。所谓绝对布局是指由开发人员通过

给出控件的坐标来在容器摆放控件,容器就不再负责这个工作了。在该界面开发中,用到了TextView 文本框控件,单行EditText 控件、Button 按钮控件、ScrollView 滚动控件和多行EditText 控件。

(4) 核心代码

首先为读者介绍的是本程序的主界面main.xml 的开发,代码如下。 代码位置:见随书光盘中源代码/第2章/Sample2_6/ res/layout 目录下的main.xml 。

1

2

3 android:id="@+id/AbsoluteLayout01" android:layout_width="fill_parent"

4 android:layout_height="fill_parent" android:background="#edab4a"

5 xmlns:android="https://www.360docs.net/doc/5312550756.html,/apk/res/android">

6

7 android:layout_x="20dip" android:layout_y="20dip"

8 android:layout_height="wrap_content" android:layout_width="wrap_content"

9 android:id="@+id/TextView01" android:textColor="#FF0000"

10 android:text="@string/uid">

11

12

13 android:layout_x="20dip" android:layout_y="80dip"

14 android:layout_height="wrap_content" android:layout_width="wrap_content"

15 android:id="@+id/TextView02" android:textColor="#FF0000"

16 android:text="@string/pwd">

17

18

android:layout_x="80dip" android:layout_y="20dip" 20

android:layout_height="wrap_content" android:layout_width="180dip" 21

android:id="@+id/EditText01">

第18章常用插件扩展点·233·

22

23

android:layout_y="80dip"

24 android:layout_x="80dip"

25 android:layout_height="wrap_content" android:layout_width="180dip"

26 android:id="@+id/EditText02"android:password="true"

27 >

28

29

30 android:layout_x="155dip"

android:layout_y="140dip"

31 android:layout_height="wrap_content" android:id="@+id/Button01"

32 android:layout_width="wrap_content" android:text="@string/ok">

33

34

android:layout_y="140dip"

35 android:layout_x="210dip"

36 android:layout_height="wrap_content" android:id="@+id/Button02"

37 android:layout_width="wrap_content" android:text="@string/cancel">

38

39

40 android:layout_x="10dip" android:layout_y="200dip"

41 android:layout_height="220dip" android:layout_width="300dip"

控件-->

42 android:id="@+id/ScrollView01">

47

48

49

提示:在该xml文件中实现了布局的设置。总的布局为AbsoluteLayout布局。在总布局中,应用了TextView文本框控件,单行EditText控件,Button按钮控件,ScrollView滚动控件和多行EditText控件。并通过对各个控件的属性设置,实现了该小软件的界面效果。

上面已经介绍了本程序的主界面main.xml的开发,接下来为读者介绍的是本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_6/src/com/bn/ex2f目录下的Sample2_6_Activity.class。

com.bn.

ex2f; //包名

1 package

2 ……//该处省略了部分类的导入,读者可自行查看随书光盘中源代码

android.app.Activity; //导入相关类

3 import

4 public class Sample2_6_Activity extends Activity { //继承自Activity类

5 public void onCreate(Bundle savedInstanceState) { //实现onCreate()方法

6 super.onCreate(savedInstanceState); //继承自父类的onCreate()

7 setContentView(https://www.360docs.net/doc/5312550756.html,yout.main); //显示main.xml界面

8 final Button OkButton = (Button) findViewById(R.id.Button01); //获取界面中的确定按钮对象

9 final Button cancelButton = (Button) findViewById(R.id.Button02); //获取界面中的取消按钮对象

10 final EditText uid=(EditText)findViewById(R.id.EditText01);

11 final EditText pwd=(EditText)findViewById(R.id.EditText02);

12 final EditText log=(EditText)findViewById(R.id.EditText03);

13 OkButton.setOnClickListener( //负责监听鼠标单击事件

14 new View.OnClickListener() { //为确定按钮添加监听器

Eclipse 从入门到精通

·234· 15

public void onClick(View v) { 16

String uidStr=uid.getText().toString(); //得到uid 的字符串 17

String pwdStr=pwd.getText().toString(); //得到pwd 的字符串 18 log.append("用户名:"+uidStr+" 密码:"+pwdStr+"\n"); //实现信息的存储

19 }});

20 cancelButton.setOnClickListener( //负责监听鼠标单击事件 21 new View.OnClickListener(){ //为取消按钮添加监听器

22 public void onClick(View v) {

23 uid.setText("");

//清空输入文本 24 pwd.setText("");

//清空输入文本

25 }

26 });

27 }} 提示:在Activity 类中,获取了按钮对象,并对其添加了按钮监听器,实现了单击确定按钮存储输

入信息和单击取消按钮清空输入信息的功能。

2.7 TextView 文字显示

(1) 实例概述

在本小节中实现了一个TextView 文字显示的小程序,其可以在屏幕上显示文字。

(2) 运行效果

本案例的运行效果图,如图2-7所示:

图2-7 TextView 文本显示

提示:在该小应用开始运行时,在界面中显示的是欢迎到百纳学习的提示文本信息,如图2-7所示。

(3) 技术概要

本小节通过对TextView 文字显示的应用,实现了屏幕上显示文字的功能。

第18章常用插件扩展点·235·

(4) 核心代码

接下来为读者介绍的是本程序中的main.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_7/ res/layout目录下的main.xml。

encoding="utf-8"?>

version="1.0"

1

xmlns:android="https://www.360docs.net/doc/5312550756.html,/apk/res/android"

2

3 android:orientation="vertical"

4 android:layout_width="fill_parent"

5 android:layout_height="fill_parent">

6

7 android:id="@+id/TextView01"

8 android:layout_width="fill_parent"

9 android:layout_height="wrap_content"

10 android:text="@string/str">

11

12

上面已经介绍了本程序的主界面main.xml的开发,接下来向读者介绍的是本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_6/src/com/bn/ex2g目录下的Sample2_7_Activity.class。

ex2g; //声明包

1 package

com.bn.

android.app.Activity; //导入相关类

2 import

android.os.Bundle;

//导入相关类

3 import

android.widget.TextView; //导入相关类

4 import

5 public class Sample2_7_Activity extends Activity { //继承自Activity类

6 /** Called when the activity is first created. */

7 @Override

8 public void onCreate(Bundle savedInstanceState) { //重写的方法

9 super.onCreate(savedInstanceState); //调用父类

10 setContentView(https://www.360docs.net/doc/5312550756.html,yout.main); //跳转到主界面

11 TextView tv=(TextView)this.findViewById(R.id.TextView01); //得到引用

12 String str_1="欢迎到百纳学习";

13 tv.setText(str_1); //设置文本

14 }}

提示:上面的主要将一段文本添加到一个TextView中。

2.8 TextView颜色的设置

(1) 实例概述

在本小节中实现了一个TextView文字显示的小程序,其可以在屏幕上显示文字,并且可以为其设置不同的背景色和字体颜色。

(2)运行效果

本案例的运行效果图,如图2-8所示:

Android应用开发基本知识点汇总

Android应用开发基本知识点汇总 Activity 一生命周期 4种状态 running / paused / stopped / killed 生命周期 Activity启动 onCreate -> onStart -> onResume 点Home返回主界面 onPause -> onStop 再次回到原Activity onRestart -> onStart -> onResume 退出Activity onPause -> onStop -> onDestroy 进程优先级前台/可见/服务/后台/空 二任务栈 三启动模式 standard singleTop 栈顶复用 singleTask 栈内复用 singeInstance 四scheme跳转协议 服务器可以定制化告诉App跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面 Fragment 一第五大组件 为什么是第五大组件 Fragment相对Activity更节省内存,切换更舒适Fragment加载到Activity的两种方式 静态加载xml 动态加载fragmentTransaction.add(id, fragment, “name”); .commit; FragmentPagerAdapter与FragmentStatePagerAdapter

FragmentStatePagerAdapter在切换时回收内存,适合页面较多的情况FragmentPagerAdapter并没有回收内存,只是detach了Activity 二生命周期 onAttach -> onCreate -> onCreateView -> onViewCreated -> onActivityCreated -> onStart -> onResume -> onPause -> onStop -> onDestroyView -> onDestroy -> onDetach 先创建Activity后创建Fragment,先销毁Fragment后销毁Activity 三Fragment之间的通信 Fragment调用Activity getActivity Activity调用Fragment 接口回调 Fragment调用Fragment方法findFragmentById 四FragmentManager replace add remove Service 一应用场景,与Thread区别 Service是什么后台长时间运行,没有用户界面,运行在主线程,不能有耗时操作 Service与Thread区别 Activity难以与Thread交互,尤其当Activity销毁以后 二开启Service的两种方式 StartService onCreate -> onStartCommand -> onBind -> onDestroy onStartCommand return START_STICKY;

(完整版)Android应用开发期末考试题

试题 一、选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 6以下不是Android中调试项目的正确步骤(测试用例) 7下列不是Activity的生命周期方法之一的是(OnResume) 8以下可以做EditText编辑框的提示信息是(adroid:hint) 9以下不是Activity启动的方法是(gotoActivity) 10以下不是手机操作系统的是(windows vista) 二、填空题 1 Android平台由操作系统,中间件,用户界面和应用软件组成的。 2 Android平台提供了2D,3D的图形支持,数据库支持SQLite,并且集成了浏览器 3目前已知的可以用来搭建Android开发环境的系统有windows,Linux,Mac 等4开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发 5 Android SDK主要以java语言为基础 6创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字

7 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API 三、简答题 1 Android SDK中API的包结构的划分?至少五个 android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android软件框架结构自上而下可分为哪些层? 应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS) 3 Android应用程序的4大组件是什么? Activity、Broadcast Intent Receiver、Service、Content Provider 4 Android应用工程文件结构有哪些? 源文件(包含Activity),R.java文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,AndroidManifest.xml 5 Android开发应用程序最有可能使用到的应用框架部分是哪些? 一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger 6 Android底层库包含哪些? 系统C库,媒体库,Surface Manager,LibWebCore,SGL 四、编程 1实现点击一个按钮,结束当前Activity并将需要返回的数据放置并关闭当前窗体请编写核心代码 Bundle bundle = new Bundle ( ); Bundle.putString(“store”,”数据来自Activity1”) ;

android studio 控件常用属性

android studio 控件常用属性 下面是RelativeLayout各个属性 1.android:layout_above="@id/xxx" --将控件置于给定ID控件之上 2.android:layout_below="@id/xxx" --将控件置于给定ID控件之下 3. android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 4.android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐 5. android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐 6.android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐 7.android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐 8.android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐 9.android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐 10. android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐 11. android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐 12.android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐 13.android:layout_centerInParent="true" --将控件置于父控件的中心位置 14.android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置 15.android:layout_centerVertical="true" --将控件置于垂直方向的中心位置 android:layout_width 设置组件的宽度 android:layout_height 设置组件的高度 android:id 给组件定义一个id值,供后期使用 android:background 设置组件的背景颜色或背景图片 android:text 设置组件的显示文字 android:textColor 设置组件的显示文字的颜色 android:layout_below 组件在参考组件的下面 android:alignTop 同指定组件的顶平行

Android常用控件

《Android基础应用》 Android常用控件 ?本章任务 ?使用Android开发使用时间组件 ?使用Android开发使用进度条组件 ?使用Android开发创建底部选项卡 ?本章目标 ?了解Android的组件层次结构 ?掌握常用的日期时间类控件 ?掌握常用的几个容器组件 1.Android组件的层次结构 UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图

TextView及其子类结构图

ViewGroup及其子类结构图 其下的子类一般作为容器或布局来使用 FrameLayout及其子类结构图 其下的子类通常作为容器或布局来使用

2.时间控件 2.1日期时间选择器 DatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制 DatePicker ●使用onDateChangedListener监听器来获取用户的日期选择 ●使用init对组件进行初始化 ●使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日 TimePicker ●使用onTimeChangedListener监听器获取用户的时间选择 ●使用setIs24HourView设置是否以24小时制显示 ●使用getCurrentHour获得当前的小时数 ●使用getCurrentMinute获得当前的分钟数 示例

示例的实现结果

2.2时钟组件 AnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView 的属性 示例

Android界面开发之常用系统控件界面大合集

今天我用自己写的一个Demo 和大家详细介绍一个Android开发中遇到的一些常用系统控件的使用技巧。 1.文本框TextView TextView的作用是用来显示一个文本框,下面我用两种方式为大家呈现TextView,第一种是通过xml布局文件

呈现,第二种是通过代码来呈现,由此可见Android 的界面开发真的是非常灵活。 view plaincopy to clipboardprint? 1. public class TextViewActivity extends Activity { 2. @Override 3. protected void onCreate(Bundle savedInstanceState) { 4. setContentView(https://www.360docs.net/doc/5312550756.html,yout.textview);

5. 6. LinearLayout ll = (LinearLayout) findViewById(R.id.textviewll); 7. TextView textView = new TextView(this); 8. //设置显示文字 9. textView.setText("从代码中添加一个TextView"); 10. //设置显示颜色 11. textView.setTextColor(Color.WHITE); 12. //设置显示字体大小 13. textView.setTextSize(18); 14. //设置显示背景颜色 15. textView.setBackgroundColor(Color.BLUE); 16. //设置锚点位置 17. textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.CE NTER_HORIZONTAL); 18. //把这个view加入到布局当中 19. ll.addView(textView); 20. 21. super.onCreate(savedInstanceState); 22. } 23. } 1. 2.

《Android应用开发》课程标准

《Android应用开发》 课程标准 内蒙古电子信息职业技术学院计算机科学系

一.课程设置概述 1.1课程在相关专业中的性质与定位 Android应用开发是物联网应用技术专业(应用开发方向)的核心课程之一,是Android应用程序开发方法的主要课程,是Android应用的主要领域。为了适应高职学生的学习情况,该课程以Android应用技术为重点,逐步阐述Android应用体系结构,介绍Android应用常见的几个功能。采用项目+案例教学法,既让学生掌握Android的基本知识,同时,也让学生在潜移默化中了解一些Android 的高级开发技术,从而为今后实现Android应用开发打下基础。 本课程的任务是使学生通过学习和操作实践,了解和掌握Android的主流应用技术及其开发方法,掌握Android的sdk、Activity、高级UI、网络、多媒体体方面的编程技术。为进一步学习移动互联工程师后续课程打下良好的理论和实践基础。 1.2 本课程的基本教学理念 (一)突出学生主体,注重技能培养,回归能力本位 Android应用开发是移动互联工程师的专业核心课程,注重软件开发基本理论、基本方法和基本技能的学习及素质教育,激发学生的学习兴趣,在启发、提示下使其自主地、全面地理解软件的基本理论和基本方法,提高学生的思维能力和实际操作技能,增强他们理论联系实际的能力,培养学生的创新精神,使学生养成观察、独立分析和解决问题的习惯;以提高技能、磨砺意识、活跃思维、展现个性和拓宽视野。 (二)尊重个体差异,注重过程评价,促进学生发展 本课程在教学过程中,倡导自主学习,启发学生对设定问题积极思考、分析,鼓励多种思维方式并将其表达出来,尊重个体差异。采用项目教学法进行教学,每个项目的成绩采取自评、互评、教师综合评价相结合的方式能激励学生的学习兴趣和自主学习能力的发展。教师在给学生评价成绩时应尽量以学习过程中的评价为主,注重培养和激发学生的学习积极性和自信心。最后期末的成绩评价应注重检测学生的知识应用能力。学生的最终课程成绩应由平时的各次项目成绩和期末的评定成绩按一定比例构成,在把握比例构成时要有利于促进学生的知识应用能力。建立以过程培养促进个体发展,以学生可持续发展能力评价教学过程的双向促进机制,以激发兴趣、展现个性、发展心智和提高素质为基本理念。 (三)整合课程资源,开放创新教学,拓展学习渠道 本课程在教学过程中,提醒学生留意观察并思考生活中接触的Android系统应用,鼓励其结合生活中熟悉的操作方法提出问题或假设,在教师引导下,通过分析、推理,使学生自主学习、总结,以便增强学生对Android开发方法基本理论的理解;通过课堂讲解与讨论、案例分析等促进学生对所学理论的理解和运用,以培 养其实际操作技能。充分利用现代教学手段,不断改进教学方式,突出典型案例

Android应用开发基础习题

-- 任务一Android 开发环境的搭建 第一部分知识回顾与思考 1.Android 的四层架构分别包括哪几层?分别起到什么作用? 答:Linux 内核层(Linux Kernel ):基于Linux 内核,内核为上层系统提供了系统服务。 系统库层(Libraries ):系统库基于C/C++ 语言实现,通过接口向应用程序框架层提供编程接口。 应用框架层(Application Framework ):为开发者提供了一系列的Java API,包括图形用户界面组件

View 、SQLite 数据库相关的API 、Service 组件等。 应用程序层(Applications ):包含了Android 平台中各式各样的应用程序。 第二部分职业能力训练 一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内) 1.Android 四层架构中,应用框架层使用的是什么语法?(C)A .CB .C++C.Java D.Android 2.Android 四层架构中,系统库层使用的是什么语法?(B)A .VBB.C /C++C.Java D .Android 3.应用程序员编写的Android 应用程序,主要是调用(B)提供的接口进行实现。 A .应用程序层DCB.应用框架层.应用视图层.系统库层

二、填空题(请在括号内填空) 1.在Android 智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于Android 的(应用程 序)层。 2.为了让程序员更加方便的运行调试程序,Android 提供了(模拟器),可以方便的将程序运行其上, 而不要实际的移动终端。 程序运行,我们需要安装(Java 3.为了支持)。JDK 三、简答题 1.简述Android 开发环境安装的步骤。 答:下载并安装JDK ,配置JDK 的环境变量; 从Anroid 官网上下载Android 开发组件(包含Eclipse 和

android常用控件大全

android常用控件大全 在Android中使用各种控件(View) DatePicker-日期选择控件 TimePicker-时间选择控件 ToggleButton-双状态按钮控件 EditText-可编辑文本控件 ProgressBar-进度条控件 SeekBar-可拖动的进度条控件 AutoCompleteTextView-支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开) ZoomControls-放大/缩小按钮控件 Include-整合控件 VideoView-视频播放控件 WebView-浏览器控件 RatingBar-评分控件 Tab-选项卡控件 Spinner-下拉框控件 Chronometer-计时器控件 ScrollView-滚动条控件 在Android中使用的Layout FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角 LinearLayout:里面可以放多个控件,但是一行只能放一个控件

TableLayout:这个要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置 RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置 (Android界面布局好像还可以直接引用一些view,如ScrollView等) 常用控件: 1,EditText 主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容; 2,RadioGroup,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置 RadioGroup.setOnCheckedChangeListener方法 publiconCheckedChanged(RadioGroupgroup,intcheckedId)//checkedId 是选中RadioButton的ID 3,CheckBox isChecked()判断是否被选中 setOnCheckedChangeListener方法监视选中状态改变情况 4,Spinner a,显示数据 1),硬编码加载 通过setAdapter方法设置类型为 ArrayAdapter(Contextcontext,inttextViewResId,String[]objects) textViewResourceId:显示内容的ViewID默认设置为 https://www.360docs.net/doc/5312550756.html,yout.simple_spinner_item

Android开发日志—常用控件篇(android简介和容器控件)

Android开发日志—常用控件篇(容器控件) android简介: Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。 Android的系统架构和其操作系统一样,采用了分层的架构。 Android结构 从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons),甚至可嵌入的web 浏览器。 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。 活动(当前界面视图):

Android应用开发试题

Android应用开发试题 一、选择题(每题2分,共30分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D.windows vista 2.Android的VM虚拟机是哪个?A A.Dalvik B.JVM C.KVM D.framework 3. AndroidVM虚拟机中运行的文件的后缀名为(B) A.class B.apk C.dex D.xml 4. 下面关于Android DVM的进程和Liunx的进程,应用程序的进程说法正确的是 A.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。B B.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx 中的一个进程,所以说可以认为不是一个概念。 C.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Liunx中的一个进程,所以说可以认为不是同一个概念。 D.DVM指dalivk的虚拟机.每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Liunx中的一个进程,所以说可以认为是同一个概念。 5. 下列哪个可做EditText编辑框的提示信息?(D) A. android:inputType B. android:text C. android:digits D. android:hint 6. 在AndroidManifes.xml中描述一个Activity时,该Activity的label属性是指定什么( B) A.指定Activity的图标 B.指定Activity的显示图标 C.指定Activity和类相关联的类名 D.指定该Activity的唯一标识 7. 关于ContentValues类说法正确的是( A ) A.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值都是基本类型。 B.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是任意类型,而值都是基本类型。 C.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名可以使空,而值都是String类型。 D.它和Hashtable比较类似,也是负责存储一些名值对,但是它存储的名值对当中的名是String类型,而值也是String类型。 8. Activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行( A) A.onPause() B.onCreate() C.onResume() D.onStart 9. 下列哪个不是Activity的生命周期方法之一?(B) A. onCreate B. startActivity C. onStart D. onResume 10.如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限( D). A.发送短信,无需配置权限

实验二 android基本控件实验

实验二 android基本控件实验 【目的】 熟悉Android常用控件的基本操作,掌握它们的基本使用方法。了解控件之间的构成关系,熟悉适配器的使用原理。 【要求】 1、了解控件的继承关系; 2、掌握适配器的使用; 3、掌握信息提示的实现机制; 4、实现基本界面。 【原理】 1.控件类之间的关系 android.view.View类(视图类)呈现了最基本的UI构造块。View类是Android中的一个超类,几乎包含了所有的屏幕类型,主要负责绘制和事件处理。 Android中控件类的扩展结构如图所示。 View有众多的扩展者,它们大部分是在android.widget包中,这些继承者实际上就是Android 系统中的“控件”。View实际上就是各个控件的基类,创建交互式的图形用户界面的基础。View的直接继承者包括文本视图(TextView)、图像视图(ImageView)、进度条(ProgressBar)等。它们各自又有众多的继承者。每个控件除了继承父类功能之外,一般还具有自己的公有 方法、保护方法、XML属性等。 在Android中使用各种控件的一般情况是在布局文件中可以实现UI的外观,然后在Java文件中实现对各种控件的控制动作。控件类的名称也是它们在布局文件XML中使用的标签名称。

2.控件通用行为和属性 View是Android中所有控件类的基类,因此View中一些内容是所有控件类都具有的通用行为和属性。 提示:由于Java语言不支持多重继承,因此Android控件不可能以基本功能的“排列组合”的方式实现。在这种情况下,为了实现功能的复用,基类的功能往往做得较强,作为控件的祖先类,View所实现的功能也是最多的。 控件类经常在布局文件中使用,因此其可以使用XML属性(XMLAttributes),和Java代码经常具有对应关系。 View作为各种控件的基类,其XML属性所有控件通用,XML属性及其对应的方法如表1所示。 表1 View中的XML属性及其对应的方法 其中,android:id表示控件的标识,通常需要在布局文件中指定这个属性。View中与控件标识相关的几个方法如下所示: public int getId() // 获得控件的id(int类型)

android应用技术简介

Android技术应用简介 摘要:近几年来,Android逐渐成为便携设备上的主要操作系统。2011年Android 在全球的市场份额首次超过塞班系统,跃居全球第一。本文主要通过阐述Android的主要思想、发展状况以及核心技术来使读者对Android有一个初步的认识。 关键词:Android、linux、NDK、google 这学期我们开设了《Android应用程序开发》这门课程。这么课程开始的时候同学们都很兴奋。因为Android在现在是最为流行的操作系统。同学们大部分用的手机都是Android操作系统。所以对它的名字非常熟悉,但是对它的真正意义和具体是如何实现Android应用程序却十分陌生。同学们都希望了解到自己的手机上的应用程序到底是如何实现其功能的。所以对这门课程产生了极大的兴趣。 这门课程主要给我们介绍了Android开发环境、应用程序、生命周期、用户界面、组件通信与广播信息、后台服务、数据存储与访问、位置服务与地图应用、Android NDK开发这9个方面的内容。让我们对Android有一个初步的认知。这本书上的内容仅仅是Android程序开发的一小部分,是引导我们正确看待Android。在今后的学习中还需要我们多看关于Android的书籍,关注Android 各方面的消息,多做关于Android的实验和课题。这样才能进一步了解这个当今全球最为流行的操作系统。 1、Android简介 Android是一种以linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。 Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android 应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:QT(qt for android)、Mono(mono for android)等一些著名编程框架也开始

Android开发技术文档

Android 开发最佳实践 从Futurice公司Android开发者中学到的经验。遵循以下准则,避免重复发明轮子。若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices和Windows client Good Practices这两篇文章。 摘要 ?使用 Gradle 和它推荐的工程结构 ?把密码和敏感数据放在gradle.properties ?不要自己写 HTTP 客户端,使用Volley或OkHttp库 ?使用Jackson库解析JSON数据 ?避免使用Guava同时使用一些类库来避免65k method limit(一个Android程序中最多能执行65536个方法) ?使用 Fragments来呈现UI视图 ?使用 Activities 只是为了管理 Fragments ?Layout 布局是 XMLs代码,组织好它们 ?在layoutout XMLs布局时,使用styles文件来避免使用重复的属性 ?使用多个style文件来避免单一的一个大style文件 ?保持你的colors.xml 简短DRY(不要重复自己),只是定义调色板 ?总是使用dimens.xml DRY(不要重复自己),定义通用常数 ?不要做一个深层次的ViewGroup ?在使用WebViews时避免在客户端做处理,当心内存泄露 ?使用Robolectric单元测试,Robotium 做UI测试 ?使用Genymotion 作为你的模拟器 ?总是使用ProGuard 和 DexGuard混淆来项目 Android SDK 将你的Android SDK放在你的home目录或其他应用程序无关的位置。当安装有些包含SDK的IDE的时候,可能会将SDK放在IDE同一目录下,当你需要升级(或重新安装)IDE或更换的IDE时,会非常麻烦。此外,若果你的IDE 是在普通用户,不是在root下运行,还要避免吧SDK放到一下需要sudo权限的系统级别目录下。 构建系统

android应用开发技术复习资料

android应用开发技术 一、判断题 1、在同一个资源目录中,可以存在两个文件名相同、扩展名不同的资源文件。(×) 2、Android系统下的文件,可以被本系统里的所有应用程序访问。(×) 3、无论Service是以启动方式还是绑定方式运行,该Service类都要重写onBind方法。(√) 4、一个Intent可以包含多个action。(×) 5、对于有序广播消息,是按照各个BroadcastReceiver注册的顺序先后接收并处理。(×) 6、Android是J2ME的一个实现。(×) 7、Android既是操作系统也是开发平台。(√) 8、Android是通过栈的形式来管理多个Activity的。(√) 9、View是ViewGroup的子类。(×) 10、一个Intent可以包含多个category。(√) 二、单项选择题 1、下面哪个不是Android的界面布局方式?( A ) A、FlowLayout B、LinearLayout C、TableLayout D、RelativeLayout 2、浏览网页使用的Intent的Action是什么?( D ) A、ACTION_CALL B、ACTION_EDIT C、ACTION_SEND D、ACTION_VIEW 3、Android 关于启动方式的service生命周期的onCreate()和onStartCommand()方法,说法正确的是( D ) A、当第一次启动的时候只会调用onCreate()方法 B、当第一次启动的时候只会调用onStartCommand ()方法 C、如果service已经启动,将先后调用onCreate()和onStartCommand ()方法 D、如果service已经启动,只会执行onStartCommand ()方法,不再执行onCreate()方法 4、下列关于ContentProvider的说法错误的是:( B ) A、ContentProvider的作用是实现数据共享和交换 B、要访问ContentProvider,只需调用ContentProvider的增删改查相关方法 C、ContentProvider提供的URI必须以“content://”开头 D、Android对于系统里的音视频、图像、通讯录提供了内置的ContentProvider 5、下列关于继承的哪项叙述是正确的?( D ) A、在Java中类允许多重继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口允许继承自另一个接口 6、以下哪种方式不能退出当前活动状态的Activity?( C ) A、调用finish()方法 B、单击(返回)按钮 C、单击(回到桌面)按钮 D、Activity运行时出现异常 7、对于TextView,使用哪个属性来设置显示的文本?( B ) A、android:textSize B、android:text C、android:textColor D、android:string 8、要处理Button的点击事件,需要注册哪个监听器?( A ) A、OnClickListener() B、OnButtonClickListener() C、OnButtonListener() D、OnItemClickListener() 9、在下述Java语言语句中,错误 ..的创建数组的方法是( D ) A、int intArray [ ]; intArray=new int[5]; B、int intArray [ ]=new int[5]; C、int [ ] intArray ={1,2,3,4,5}; D、int intArray [5]={1,2,3,4, 5}; 10、以下哪种方式不能退出当前活动状态的Activity?( C ) A、调用finish()方法 B、单击(返回)按钮 C、单击(回到桌面)按钮 D、Activity运行时出现异常 11、对于音乐播放器程序中的播放进度控制,使用哪个控件适合?( C ) A、ProgressBar B、RatingBar

Android基础-控件的使用

创建控件并添加监听器的过程: 1.xml中定义控件(

相关文档
最新文档