版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android高级组件与菜单,主要内容,列表视图,2,菜单,5,对话框,基本图片控件,1、图片按钮ImageButton:以图片的形式设置按钮的风格。 2、图片视图ImageView:ImageView继承自View组件,它的主要功能是为图片展示提供一个容器,android:scaleType属性,设置所显示的图片如何缩放或移动以适应ImageView的大小。常见属性值如下: fitCenter:保持纵横比缩放图片,直到该图片能完全显示在ImageView中,缩放完成后将该图片放在ImageView的中央。 fitXY:对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的
2、纵横比可能会改变。 centerCrop:保持纵横比缩放图片,以使得图片能完全覆盖ImageView。,基本图片控件,案例: 图片浏览器 本例的图片浏览器不仅可以浏览图片还可以改变所查看图片的透明度,以及通过一个小区域来显示图片的原始信息。,基本图片控件,图片缩放关键代码,高级组件界面,3、列表视图 ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项,创建ListView有两种形式。 a、直接使用ListView进行创建; b、让Activity继承ListActivity。,一旦在程序中获得了ListView之后,接下来就需要为ListView设置它要显示的
3、列表项了。需要一个供显示的列表项,这就需要借助于Adapter,它负责提供需要显示的列表项。,高级组件界面,使用SimpleAdapter可以自定义ListView的列表项,需要5个参数: 第一个参数:context对象; 第二个参数:List集合对象; 第三个参数:指定一个界面布局的ID; 第四个参数:是一个String类型的参数。 第五个参数:是一个int类型的参数。,高级界面组件,SimpleAdapter类的作用: 主要作用是将List集合的数据转换为ListView可以支持的数据,实现这种转换,首先需要定义一个数据的显示模板,在这一模板中可以定义ListView每一项所需要显示的所有
4、组件,而在需要转换的List集合里保存的是多条Map集合的数据,这些Map集合里面保存着一些具体的要显示的信息。 即:模板中每一个组件的ID实际上就相当于规定了里面保存的Map集合的key,而模板中每个组件的显示内容,则由Map保存的value决定。,高级界面组件,案例 (程序清单:codes/02/SimpleAdapterTest) (1)功能:在布局中分别定义一个ImageView、一个TextView,并将它们作为一个整体当做ListView的列表项显示出来。,高级界面组件,程序结构,高级界面组件,界面与方法设计,高级界面组件,问题与讨论 尝试实现以左图的界面显示列表项。,高级界面组件
5、,图片浏览器程序,自定义下拉列表,练习:,1,2,高级界面组件,4、图像切换器ImageSwitcher 主要功能是完成图片的切换显示,例如用户在进行图片浏览的时候,可以通过按钮点击一张张的切换显示的图片,而且使用ImageSwitcher组件在每次切换的时候可以为其增加一些动画的效果。,Animation 在使用ImageSwitcher切换图片的时候可以通过Animation指定切换图片时的动画显示效果,但是要想取得Animation类的对象还需要使用一个AnimationUtils类完成,高级界面组件,android.R 在使用loadAnimation()方法创建Animation对象
6、的时候需要指定操作的资源类型,这些类型可以直接从android.R这个类中定义的常量找出,本次程序将使用以下两个资源常量: 进入时动画显示:public static final int fade_in; 离开时动画显示:public static final int fade_out;,ViewSwitcher.ViewFactory 如果要想实现图片的切换功能,则定义的Activity类还必须实现ViewSwitcher.ViewFactory接口,以指定切换视图的操作工厂。,高级界面组件,ViewFactory接口使用 如果现在要显示图片,可以使用ImageView返回,例如:如下的代码
7、就是在makeView()中指定了切换的图片显示的若干参数。 private class ViewFactoryImpl implements ViewFactory public View makeView() ImageView img = new ImageView(MyImageSwitcherDemo.this); /实例化图片显示 img.setBackgroundColor(0 xFFFFFFFF); / 设置背景颜色 img.setScaleType(ImageView.ScaleType.CENTER); / 居中显示 img.setLayoutParams(new Imag
8、eSwitcher.LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); /定义组件return img; ,高级界面组件,5、画廊视图Gallery 在Android中可以使用一些软件方便的进行图片的拖拽浏览,这样的功能就可以通过Gallery组件实现,使用Gallery组件可以定义一组图片浏览框,如图所示,可以减轻开发者对于图片浏览开发的功能的开发困难。,高级界面组件,Gallery适配器 在使用Gallery设置图片集的时候需要使用setAdapter()方法,此时设置的是SpinnerAdapter接口的对
9、象,主要功能是定义一组要显示组件的适配器,而对于这种适配器操作有两种可选方式: 方式一:用一个自定义的类直接继承SpinnerAdapter接口的子类 android.widget.BaseAdapter类实现,这样用户只需要覆写核心操作方法即可,不需要的方法可以不用覆写; 方式二:直接使用之前学习过的SimpleAdapter类完成;,高级界面组件,案例:图片浏览器 (codes/02/ GalleryTest),高级界面组件,6、对话框 在图形界面之中,对话框也是人机交互的一种重要形式,程序可以通过对话框对用户进行一些信息的提示,而用户也可以通过对话框和程序进行一些简单的交互操作。 在An
10、droid的开发之中,所有的对话框都是从 android.app.Dialog类继承而来,,警告框(AlertDialog) 警告框(AlertDialog)是在项目中出现的最简单的一种对话框,主要的目的是为用户显示一条警告信息,AlertDialog也是在对话框中使用最多的一个类,而且是Dialog的直接子类。,高级界面组件,如果要想实例化AlertDialog类往往都依靠其内部类:AlertDialog.Builder完成。使用AlertDialog创建对话框大致按如下步骤进行:,第1步:创建AlertDialog.Builder对象,该对象是AlertDialog的创建器。,第2步:调用
11、AlertDialog.Builder方法为对话框设置图标、标题、内容等,第3步:调用AlertDialog.Builder的create()方法创建AlertDialog对话框,第4步:调用AlertDialog的show()方法显示对话框。,高级界面组件,案例:,菜单,1、菜单简介 菜单在系统的开发之中是必不可少的一种组件,在Android手机上往往都会存在一个“Menu” 键,当选择之后会在屏幕的底部显示系统的菜单,在一个菜单之中可以包含多个菜单项(MenuItem),在一个菜单之中最多只会显示2排3列的菜单项,如果菜单项超出了6个,则超出部分会自动隐藏,而且会自动出现一个“更多”的菜单
12、项提示用户。 在Android系统之中,菜单一共有三类:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。,菜单,(1)选项菜单:OptionsMenu 选项菜单是一个最基本的菜单,如果要想实现选项菜单,则直接在程序之中覆写android.app.Activity类的如下几个方法: public boolean onCreateOptionsMenu(Menu menu):在此方法之中设置多个菜单项(MenuItem);返回值:返回true表示显示菜单,反之则不显示; public boolean onOptionsItemSelected(M
13、enuItem item):此方法判断菜单项的操作; public void onOptionsMenuClosed(Menu menu):当菜单关闭时触发此操作; public boolean onPrepareOptionsMenu(Menu menu):在菜单显示前触发此操作;返回值:返回true则继续调用onCreateOptionsMenu()方法,反之则不再调用。,菜单,(2)上下文菜单:ContextMenu 上下文菜单非常类似于在windows操作系统中的右键菜单的操作形式,在使用支持Android操作系统手机时,如果在一个列表显示(ListView)操作中,用户可以通过长按操
14、作打开某些操作的菜单,而这种菜单就是上下文菜单。,开发上下文菜单的步骤如下: a、重写Activity的onCreateContextMenu(ContextMenu menu,View source, ContextMenuInfo menuInfo)方法; b、调用Activity的registerForContextMenu(View view)方法为view组件注册上下文菜单。 c、如果希望应用程序能为菜单项提供响应,可以考虑重写onContextItemSelected(MenuItem mi)方法,或为指定菜单项绑定事件处理器。,菜单,(3)子菜单:SubMenu 当在系统之中定义
15、完菜单之后,也可以为每一个菜单里面定义多个子菜单(SubMenu),在SubMenu接口之中定义的常用方法有五种。,1、public abstract MenuItem getItem()得到一个子菜单所属的父菜单对象 2、public abstract SubMenu setHeaderIcon(int iconRes) 设置菜单的显示图标 3、public abstract SubMenu setHeaderTitle(int titleRes) 设置子菜单的显示标题 4、public abstract SubMenu setHeaderTitle(CharSequence title) 设置子菜单的显示标题 5、public abstract SubMenu setIcon(int iconRes) 设置每个子菜单项的图标,菜单,案例1(程序清单:codes/02/MenuTest) (1)功能:单击菜单键实现选项菜单,长按文本显示框实现上下文菜单,单击Menu_NUM02时会继续弹出下拉菜单。,(2)界面与方法设计 单击菜单键弹出如下菜单:,点击More显示:,菜单,长按文本显示框弹出快捷菜单如下:,单击Menu_NUM02时会继续弹出下拉菜单:,菜单,案例2(co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清洁剂配方师冲突管理强化考核试卷含答案
- 纸盒制作工岗位责任考核试卷含答案
- 酶制剂充填封装工岗中基础效率考核试卷含答案
- 气体深冷分离工岗中技能水平考核试卷含答案
- 混凝土模具工岗中技术创新考核试卷含答案
- 强化地板备料工安全知识能力考核试卷含答案
- 压缩机装配调试工岗中学习应用考核试卷含答案
- 2026年小学一年级上册《太阳》标准教案
- 2026年小学成语故事《椿萱并茂》孝亲敬老公开课教案
- DB44-T 2891-2026 健康医疗数据产权合规登记规则指南
- 2024-2025学年广东广州番禺区七年级(下)期末数学试卷及答案
- 2026福建海峡科化股份有限公司社会招聘15人笔试备考题库及答案详解
- 2026北京语言大学新编长聘人员招聘9人(第三批)考试备考题库及答案详解
- 消化内镜操作规范
- 护理沟通与人文关怀技巧
- 软包墙面施工方案及技术措施
- 2026年秋季学期 1530安全教育记录
- 病历书写基本规范(国家卫健委2022年版)
- cors站建设技术方案
- 销售心态培训课件
- 烹饪实训室安全教育课件
评论
0/150
提交评论