《实验2 android的界面设计.docx》由会员分享,可在线阅读,更多相关《实验2 android的界面设计.docx(19页珍藏版)》请在三一办公上搜索。
1、实验2 android的界面设计(控件与布局)学时:4学时一、实验目的:1、了解Android编程原理2、掌握界面控件设计3、了解和熟悉常用控件的使用、界面布局等内容。二、实验内容:1.基本控件的制作:(1)TextView 的制作:a)体会 Autolink,依次更换属性:web/phone/all/email/android: id =android ; aut-c?Link= crt t,rand raid ; laycut_width = fi tL_parErrtandraid : 1日& 冲伽瞰点奴就切藏需蹒睥漓二android : teKt5ize= J2&Ep*randroid
2、 ;址Kt匚时。-半小。户F筮!b)制作跑马灯效果android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:” start” 一-省略号显示在开头;” end”省略号显示在结尾;” middle”-省略号显示在中间;” marquee” 一一以跑马灯的方式显示(动画横向移 动)android:marqueeRepeatLimit 在 ellipsize 指定 marquee 的情况下,设置重复 滚动的次数,当设置为marquee_forever时表示无限次。 android:focusableInTouchMode:是否在触摸模式下获得焦点。android:focus
3、able控件是否能够获取焦点tlEKfViiewandroid : id-e,J?-l-Ld/tvjr android amtoLink-aLI android; layout _ddt h-/. l.L_ gre nt* android: layout _h ei ghttent,ran d r-old; slngl c Li ne - ,rtr uear an d r-o Id z Focus 昌 bl e= ,rtTrerr dii d rold elllps i.2 e= trtir g定营 * androidqu eePepe atL imit -fw 曰咬i.曲尸 *an droi
4、d : f cusablsInTaiJchFtide=Brue Iandroid:Mw山 nwpu .瓶烦.口3廊成 L:欧;煽iwgm;.目ftr ch.*场一 aindrd : -tex*tSzc-= S&sp “由n d r-o ld: text(2)EditView 制作(a) maxLength:最大输入长度属性android : 1 ayo u t_width = fz L L-_pcrren t android : 1 ay?ut_height=Brwrap_conterrtr android :;max_eigth= J(b) singleLine:多行文本框ivrciG wn
5、tent -r ridroid ; 1 ayout_width=fi LL_parentn 目riTroid ; layut_height= android : sirigl&_irie=r/:er(c) inputType:限制输入文本类型(d) hint:设置提示信息Main Activity我是 EditText2.布局设计(1) LinearLayout 布局:(2)Relative Layout :(3) Table Layout3.建立一个如图所示的图形界面:4. 用ListView制作如图界面(图片自定)(将该题以你的学号命名,发给你班的学习委员,以 班为单位统一发给我,我的邮箱
6、为:):5 .用expandablelistview制作如下界面:墨 3:526. 对话框制作:(2)提示确认退出回?确认取消部分程序代码:protected void dialog() AlertDialog.Builder builder = new Builder(Main.this);builder.setMessage(确认退出吗?);builder.setTitle(提示);builder.setPositiveButton(确认,new OnClickListener() Overridepublic void onClick(DialogInterface dialog, in
7、t which) dialog.dismiss();Main.this.finish(););builder.setNegativeButton(取消,new OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) dialog.dismiss(););builder.create().show();/在 onKeyDown(int keyCode, KeyEvent event)方法中调用此方法public boolean onKeyDown(int keyCode, KeyEvent
8、event) if (keyCode = KeyEvent.KEYCODE_BACK & event.getRepeatCount() = 0) (点后退键的时候,为了防止点得过快,触发两次后退事件dialog();return false;(2)界面如下:喜好调查你喜欢李连杰的电彰吗?很喜欢 一般 不言炊IV5i部分代码:Dialog dialog = new AlertDialog.Builder(this).setIcon(android.R.drawable.btn_star).setTitle(喜好调查”).setMessage(你喜欢李连杰的电影吗?).setPositiveBut
9、ton(很喜欢”,new OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) / TODO Auto-generated method stubToast.makeText(Main.this,”我很喜欢他的电影。”,Toast.LENGTH_LONG).show();).setNegativeButton(” 不喜欢”,new OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which
10、) / TODO Auto-generated method stubToast.makeText(Main.this, ”我不喜欢他的电影。,Toast.LENGTH_LONG).show();).setNeutralButton(一 般”,new OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) / TODO Auto-generated method stubToast.makeText(Main.this,谈不上喜欢不喜欢。,Toast.LENGTH_LONG).show()
11、;).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 I
12、tem1, Item2 ,null, null).setPositiveButton(确定”,null).setNegativeButton(取消,null).show();(5)界面如下:)new AlertDialog.Builder(this).setTitl e(单选框 ).setIcon( android.R.drawable.ic_dialog_info).setSingleChoiceItems( new String Item1, Item2 , 0, new DialogInterface.OnClickListener() public void onClick(Dialo
13、gInterface dialog, int which) dialog.dismiss();(6)列表对话框:new AlertDialog.Builder(this).setTitle(列表框”).setItems(new String Item1”, Item2 , null).setNegativeButton( ”确定”,null).show();(7)自定义对话框:).setNegativeButton(取消,null).show();Q自定义布局dialog布局文件代码如下:程序代码:LayoutInflater inflater = getLayoutInflater();Vi
14、ew layout = inflater.inflate(R.layout.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(MenuNONK, 1,8
15、,”删除”).setIcon(android.R.drawable.ic_menu_delete);menu.add(MenuNONK, 2, 2,保存”).setIcon(android.R.drawable.ic_menu_edit);menu.add(MenuNONK, 3, 6,”帮助”).setIcon(android.R.drawable.ic_menu_help);menu.add(MenuNONK, 4, 1,”添加).setIcon( android.R.drawable.ic_menu_add);menu.add(MenuNONK, 5, 4,详细).setIcon( an
16、droid.R.drawable.ic_menu_info_details);menu.add(MenuNOE, 3, 3,发送).setIcon(android.R.drawable.ic_menu_send);menu.add(MenuNONK, 7, 7,分享).setIcon(android.R.drawable.ic_menu_share);menu.add(MenuNONK, 8, 5,查找).setIcon(android.R.drawable.ic_menu_search);menu.add(MenuNONK, 9, 9,拨号).setIcon(android.R.drawab
17、le.ic_menu_call);/返回true将显示在函数中设置的菜单,否则不能够显示菜单return true;(2)子菜单:d ms勘设置mi安全孀public boolean onCreateOptionsMenu(Menu menu) ( int base = Menu.FIRST;/ 一个menu可以包括多个子菜单SubMenu subMenu = menu.addSubMenu(base, base+1, Menu.NONE,”系统设置”);/子菜单可以包括多个菜单项Menuitem menuiteml = subMenu.add(base, base+1, base+1,”显示
18、设置);subMenu.add(base, base+2, base+2,网络设置”);subMenu.add(base, base+3, base+3,”高级设置”);subMenu.add(base, base+4, base+4,安全设置”);/子菜单项不支持显示图标,这样做是没意义的,尽管不会报错!menuiteml.seticon(R.drawable.displaysettings);/但是子菜单本身是支持图标的subMenu.seticon(R.drawable.settings);/显示菜单请返回truereturn true;附加题(有兴趣的同学可以作一下)【源代码】1、主界
19、面布局文件main.xml LinearLayoutandroid:layout_width=fill_parent android:layout_height= wrap_content android:orientation=horizontal LinearLayoutandroid:layout_width= fill_parentandroid:layout_height=wrap_contentandroid:orientation=horizontal”2、Listview中的item布局文件:3、Spinner 中的 ourse_list.xmlresources语文数学英语物
20、理化学生物4、edit_text样式的定义: 5、spinner 样式的定义: 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();/将所输入的信息添
21、加到mDataList中mDataList.add(new Item(id,name,grade,classes);/ 刷新 listviewmListAdapter.notifyDataSetChanged();/创建toast提示添加成功toast=Toast.makeText(getApplicationContext(),”添加成功! ,Toast. LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();7、删除按钮的事件定义:mViewHolder. mDelButton/删除按钮事件 .setOnClick
22、Listener(new View.OnClickListener() (Overridepublic 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;this.name = name;this.grade = grade;this.course = course;