当前位置:文档之家› 实验2 android的界面设计(控件与布局)

实验2 android的界面设计(控件与布局)

实验2 android的界面设计(控件与布局)
实验2 android的界面设计(控件与布局)

实验2 android的界面设计(控件与布局)

学时:4学时

一、实验目的:

1、了解Android编程原理

2、掌握界面控件设计

3、了解和熟悉常用控件的使用、界面布局等内容。

二、实验内容:

1.基本控件的制作:

(1)TextView的制作:

a)体会Autolink,依次更换属性:web/phone/all/email/

b) 制作跑马灯效果

android:ellipsize 设置当文字过长时,该控件该如何显示。有如下值设置:”start”—-省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee”——以跑马灯的方式显示(动画横向移动)

android:marqueeRepeatLimit 在ellipsize 指定marquee 的情况下,设置重复滚动的次数,当设置为marquee_forever 时表示无限次。

android:focusableInTouchMode:是否在触摸模式下获得焦点。

android:focusable 控件是否能够获取焦点

(2)EditView制作

(a) maxLength:最大输入长度属性

(b) singleLine:多行文本框

(c) inputType:限制输入文本类型

(d) hint:设置提示信息

2.布局设计

(1) LinearLayout布局:

(2)Relative Layout:

(3)Table Layout

3.建立一个如图所示的图形界面:

4.用ListView制作如图界面(图片自定) (将该题以你的学号命名,发给你班的学习委员,以班为单位统一发给我,我的邮箱为:610083060@https://www.doczj.com/doc/6b9387660.html,):

5.用expandablelistview制作如下界面:

6.对话框制作:

(2)

部分程序代码:

protected void dialog() {

AlertDialog.Builder builder = new Builder(Main.this);

builder.setMessage("确认退出吗?");

builder.setTitle("提示");

builder.setPositiveButton("确认", new OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) { dialog.dismiss();

Main.this.finish();

}

});

builder.setNegativeButton("取消", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

}

});

builder.create().show();

}

//在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

//点后退键的时候,为了防止点得过快,触发两次后退事件dialog();

}

return false;

}

(2)界面如下:

部分代码:

Dialog dialog = new AlertDialog.Builder(this).setIcon(

android.R.drawable.btn_star).setTitle("喜好调查").setMessage(

"你喜欢李连杰的电影吗?").setPositiveButton("很喜欢",

new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub Toast.makeText(Main.this, "我很喜欢他的电影。",

Toast.LENGTH_LONG).show();

}

}).setNegativeButton("不喜欢", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG)

.show();

}

}).setNeutralButton("一般", new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG)

.show();

}

}).create();

dialog.show();

(3)界面如下:

new AlertDialog.Builder(this).setTitle("请输入").setIcon(

android.R.drawable.ic_dialog_info).setView(

new EditText(this)).setPositiveButton("确定", null)

.setNegativeButton("取消", null).show();

(4)界面如下:

new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems( new String[] { "Item1", "Item2" }, null, null)

.setPositiveButton("确定", null)

.setNegativeButton("取消", null).show();

(5)界面如下:

new AlertDialog.Builder(this).setTitle("单选框").setIcon( android.R.drawable.ic_dialog_info).setSingleChoiceItems(

new String[] { "Item1", "Item2" }, 0,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

}

}).setNegativeButton("取消", null).show();

(6)列表对话框:

new AlertDialog.Builder(this).setTitle("列表框").setItems(

new String[] { "Item1", "Item2" }, null).setNegativeButton(

"确定", null).show();

(7)自定义对话框:

dialog布局文件代码如下:

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

android:background="#ffffffff" android:orientation="horizontal"

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

android:layout_width="wrap_content"

android:id="@+id/tvname" android:text="姓名:" />

android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>

程序代码:

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate(https://www.doczj.com/doc/6b9387660.html,yout.dialog,

(ViewGroup) findViewById(R.id.dialog));

new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout) .setPositiveButton("确定", null)

.setNegativeButton("取消", null).show();

7.制作如图所示的菜单及子菜单:

(1)菜单:

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(Menu.NONE, 1,8, "删除").setIcon(android.R.drawable.ic_menu_delete);

menu.add(Menu.NONE, 2, 2, "保存").setIcon(android.R.drawable.ic_menu_edit);

menu.add(Menu.NONE, 3, 6, "帮助").setIcon(android.R.drawable.ic_menu_help);

menu.add(Menu.NONE, 4, 1, "添加").setIcon( android.R.drawable.ic_menu_add);

menu.add(Menu.NONE, 5, 4, "详细").setIcon( android.R.drawable.ic_menu_info_details);

menu.add(Menu.NONE, 3, 3, "发送").setIcon(android.R.drawable.ic_menu_send);

menu.add(Menu.NONE, 7, 7, "分享").setIcon(android.R.drawable.ic_menu_share);

menu.add(Menu.NONE, 8, 5, "查找").setIcon(android.R.drawable.ic_menu_search);

menu.add(Menu.NONE, 9, 9, "拨号").setIcon(android.R.drawable.ic_menu_call);

//返回true将显示在函数中设置的菜单,否则不能够显示菜单

return true;

}

(2)子菜单:

public boolean onCreateOptionsMenu(Menu menu) {

int base = Menu.FIRST;

// 一个menu可以包括多个子菜单

SubMenu subMenu = menu.addSubMenu(base, base+1, Menu.NONE, "系统设置");

// 子菜单可以包括多个菜单项

MenuItem menuitem1 = subMenu.add(base, base+1, base+1, "显示设置");

subMenu.add(base, base+2, base+2, "网络设置");

subMenu.add(base, base+3, base+3, "高级设置");

subMenu.add(base, base+4, base+4, "安全设置");

// 子菜单项不支持显示图标,这样做是没意义的,尽管不会报错!

menuitem1.setIcon(R.drawable.displaysettings);

//但是子菜单本身是支持图标的

subMenu.setIcon(R.drawable.settings);

// 显示菜单请返回true

return true;

}

附加题(有兴趣的同学可以作一下)

【源代码】

1、主界面布局文件main.xml

xmlns:android="https://www.doczj.com/doc/6b9387660.html,/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="#ffffff">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10dp"

android:paddingLeft="10dp"

android:text="姓名:"

android:textColor="#000000"

android:textSize="15sp"/>

android:textSize="15sp"

android:background="@drawable/edit_text"

android:id="@+id/editxt_name"

android:layout_width="200dp"

android:layout_height="wrap_content"

android:layout_marginLeft="3dp"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10dp"

android:paddingLeft="10dp"

android:text="学号:"

android:textColor="#000000"

android:textSize="15sp"/>

android:background="@drawable/edit_text"

android:textSize="15sp"

android:id="@+id/editxt_id"

android:layout_width="200dp"

android:layout_height="wrap_content"

android:layout_marginLeft="3dp"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10dp"

android:paddingLeft="10dp"

android:text="班级:"

android:textColor="#000000"

android:textSize="15sp"/>

android:background="@drawable/edit_text"

android:textSize="15sp"

android:id="@+id/editxt_class"

android:layout_width="200dp"

android:layout_height="wrap_content"

android:layout_marginLeft="3dp"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10dp"

android:paddingLeft="10dp"

android:text="年级:"

android:textColor="#000000"

android:textSize="15sp"/>

android:background="@drawable/edit_text"

android:textSize="15sp"

android:id="@+id/editxt_grade"

android:layout_width="200dp"

android:layout_height="wrap_content"

android:layout_marginLeft="3dp"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">"

android:id="@+id/spinner_view"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="课程:"

android:textSize="15sp"

android:paddingTop="10dp"

android:paddingLeft="10dp"

android:textColor="#000000"

/>

android:id="@+id/course_spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/spinner_default_holo_light"

/>

android:layout_marginTop="15dp"

android:id="@+id/but_sure"

android:layout_width="300dp"

android:layout_height="30dp"

android:text="添加"

android:layout_gravity="center"

android:textSize="15sp"

android:textColor="#ffffff"

android:onClick="OnAddClick"

android:background="#7b7979"/>"

android:paddingTop="20dp"

android:id="@+id/course_listview"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#ffffff"

/>

2、Listview中的item布局文件:

xmlns:android="https://www.doczj.com/doc/6b9387660.html,/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:background="#ffffff">

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

android:id="@+id/item_name"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textColor="#000000"

android:textSize="10sp"/>

android:id="@+id/item_num"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textColor="#000000"

android:textSize="10sp"/>

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:id="@+id/item_class"

android:textSize="10sp"

android:textColor="#000000"

/>

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:id="@+id/item_course"

android:textSize="10sp"

android:textColor="#000000"

/>

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:id="@+id/item_del"

android:textSize="20sp"

android:textColor="#000000"

/>

"

"

3、Spinner中的ourse_list.xml

语文

数学

英语

物理

化学

生物

4、edit_text样式的定义:

android:drawable="@drawable/textfield_multiline_activated_holo_dark"/ >

android:drawable="@drawable/textfield_multiline_default_holo_light"/>

5、spinner样式的定义:

android:drawable="@drawable/spinner_default_holo_light"/>

6、添加按钮的事件定义:

public void OnAddClick(View v)//添加按钮事件

{

//将所输入的信息转换为字符串

String name=mTextName.getText().toString();

String id=mTextId.getText().toString();

String classes=mSpinnerCourse.getSelectedItem().toString();

String grade=mTextGrade.getText().toString();

//将所输入的信息添加到mDataList中

mDataList.add(new Item(id,name,grade,classes));

//刷新listview

mListAdapter.notifyDataSetChanged();

//创建toast提示添加成功

toast=Toast.makeText(getApplicationContext(),

"添加成功!", Toast.LENGTH_LONG);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

}

7、删除按钮的事件定义:

mViewHolder.mDelButton//删除按钮事件

.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mArrayitem.remove(id - 1);

ItemAdapter.this.notifyDataSetChanged();

//创建toast提示删除成功

toast=Toast.makeText(mContext,

"删除成功!", Toast.LENGTH_LONG);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

}

});

8、Item类的定义:

package com.example.classview;

public class Item {

public String course;

public String id;

public String grade;

public String name;

public Item(String id, String name, String grade,String course) { super();

this.id = id;

https://www.doczj.com/doc/6b9387660.html, = name;

this.grade = grade;

this.course = course;

}

}

Android简单的登陆界面的设计开发

通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名:

实训内容: 一.1.Andriod的简介 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread 和Android 3.0 Honeycomb。 Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 Android早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 2.Android构架图 二.1软件下载 Android SDK,网址是https://www.doczj.com/doc/6b9387660.html,. JDK的下载地址https://www.doczj.com/doc/6b9387660.html,/javase/downloads/widget/jdk6.jsp。Eclipse的下载网址是https://www.doczj.com/doc/6b9387660.html,/downloads/ 2.Android开发环境搭建

第4章 Android用户界面设计

视图组件的使用模式 常用组件 高级组件 提示框与警告对话框

就是Android应用程序的开发过程。一般过程是先通过XML布局文件或Java代码创建界面布局,设定组件显示样式,随后获取UI组件对象,并处理组件事件响应。 视图组件的定义 资源的访问 生成视图组件资源标识 视图组件的引用 视图组件的事件响应 组件的常用属性

1.1视图组件的定义 使用XML布局文件定义视图组件 使用Java代码定义视图组件(不推荐)

1.1视图组件的定义 使用XML布局文件定义视图组件 Android平台为大多数视图组件以及其子类提供了XML标记,可通过XML布局文件中的标记来定义视图组件。XML中的每个元素代表了一个组件,即元素名称对应相应的Java类。

1.1视图组件的定义

相关文档 最新文档