3.6android高级控件之对话框上界面介绍,42_第1页
3.6android高级控件之对话框上界面介绍,42_第2页
3.6android高级控件之对话框上界面介绍,42_第3页
3.6android高级控件之对话框上界面介绍,42_第4页
3.6android高级控件之对话框上界面介绍,42_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android高级界面控件介绍 倚动软件工厂实验室 Q Q号: 2227351322 本讲主要内容图片控件列表控件对话框菜单主要内容图片控件动态改变按钮图片图片切换图片控件图片视图ImageViewImageView直接继承自View类,它主要用于显示图片。 android:scaleType属性,设置所显示的图片如何缩放或移动以适应ImageView的大小。常见属性值有: fitCenter:保持纵横比缩放图片,直到该图片能完全显示在ImageView中,缩放完成后将该图片放在ImageView的中央。 fitXY:对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵

2、横比可能会改变。 centerCrop:保持纵横比缩放图片,以使得图片能完全覆盖ImageView。图片控件fitCenter效果(默认)centerCrop效果fitXY效果注意 :当图片的纵横比与ImageView的纵横比相同时,这三个值对应的效果是一致的。 相同图片,设置不同缩放类型的效果如下: 图片控件图片按钮ImageButton 作用和Button类似,主要用于事件处理,只不过普通的Button按钮显示的是文字,而ImageButton按钮显示的是图片,Button继承于TextView,类似的ImageButton继承于ImageView。注意 :ImageView和ImageB

3、utton不能显示文字,即设置android:text属性时,虽然系统不报错,但是运行时是看不到文字效果的。 如果想要在按钮上达到既有图片又有文字的效果,应该怎么做呢? 图片控件方案一: 直接将图片和文字设计成一张图片,然后将其作为ImageButton的src属性的值。 缺点:不够灵活,当我们需要修改文字或图片时,需要重新设计整张图片,比较麻烦。方案二: 直接将图片作为Button的背景,然后为Button添加android:text属性,设置显示的文字。此时,图片和文字是分离的,可以单独进行设置,灵活性较好。 缺点:图片作为Button背景时,会根据Button的大小而做调整,可能会变形。

4、图片控件 src表示图片源,相当于是前景色,显示在最前方,会覆盖背景,往往是居中显示,而background表示背景,显示的是整个控件所能看到的范围,二者都可以引用图片资源。 二者的区别在于,当引用的图片小于控件的大小时,用src引用的图片将会原图显示,不改变图片的大小;而用background引用的图片会按照控件的大小放大图片。 例如:假设ImageButton的宽高是100 x100,而我们要加上去的图片宽高是80 x80。如果用src进行设置,则图片会按80 x80 居中绘制上去。如果你使用的是background ,则加上去的图片宽高会被拉伸成100 x100。ImageButton中

5、src和background的区别:图片控件动态改变按钮显示的图片初始效果 按下中间按钮的效果 单击下面按钮的效果 ImageView不具备事件处理能力,因此自己不能动态变化。图片控件如何去除按钮默认的灰色背景?尝试将其背景改为白色;(治标不治本,即将按钮的颜色设置为与系统的背景色相同的)尝试设置按钮的alpha属性;(不起作用)设置按钮的背景颜色,将其背景颜色设置为透明。(推荐)颜色值的表示方法:#ARGB、#AARRGGBB、#RGB、#RRGGBB图片控件图像切换器ImageSwitcher ImageSwitcher主要用于完成图片的切换显示,既然是切换那么肯定是在两个视图之间进行的,

6、查看源码发现ImageSwitcher是通过setFactory()方法来创建两个需要切换的视图。 该方法需要传递一个ViewFactory类型的参数,而ViewFactory是ViewSwitcher类的一个内部接口,该接口内包含一个makeView()方法,用于创建一个视图。 在setFactory()方法内部,调用了两次makeView()方法,从而创建了两个视图进行切换。 因此实现ViewFactory接口时,必须要实现makeView()方法,作为图片切换器,所创建的两个视图都是ImageView。图片控件图像切换器ImageSwitcher 主要用于完成图片的切换显示,切换时可设置

7、切换的动画效果。既可以是自定义的动画,也可以使用系统定义的动画,例如淡入淡出等。 用户浏览图片时,可以通过点击图片进行切换显示,在每次切换时,可以为其添加一些动画效果。主要是通过Animation类来指定动画的,而要获取Animation类的对象则需要借助于AnimationUtils类提供的一些方法,具体的可查看API文档。图片控件动画资源 在使用loadAnimation()方法创建Animation对象的时候需要指定操作的动画资源,动画资源可自定义也可以使用系统自带的,在android.R这个类中定义了相应的常量,源文件在SDK目录下的dataresanim文件夹中。本次程序将使用以下两

8、个资源常量:淡入效果:public static final int fade_in;淡出效果:public static final int fade_out; ViewSwitcher.ViewFactory ImageSwitcher是通过setFactory()方法来创建两个需要切换的视图。该方法需要传递一个ViewFactory类型的参数,而ViewFactory是ViewSwitcher类的一个内部接口,该接口内包含一个makeView()方法,用于创建一个视图。图片控件画廊视图Gallery 在Android中使用一些工具能方便地进行图片的拖拽浏览,其中Gallery组件就是一个

9、比较好的工具,使用Gallery组件可以定义一组图片浏览框,如图所示,可以降低开发者开发图片浏览功能的难度。 图片控件 Gallery适配器 使用Gallery时,关键是要为其设置需要显示的图片集(图片源),是通过Gallery的setAdapter()方法实现的。 该方法需要传递一个SpinnerAdapter类型的对象,而SpinnerAdapter是一个接口,通常我们直接继承该接口的实现类-android.widget.BaseAdapter来自定义自己的适配器。 关于适配器的知识将会在下拉列表控件部分详细讲解。图片控件该示例综合运用ImageSwitcher控件和Gallery控件。其

10、中Gallery控件用于存放一组图片,并提供拖拽浏览功能,而ImageSwitcher控件,则显示选中的图片,并为图片的切换添加一些动画效果。图片控件 Gallery默认是无法循环显示的,而通常我们希望浏览最后一张图片后,能够继续浏览第一张图片,那应该如何实现该效果呢? 只需将getCount()方法的返回值设为一个大数即可,因为getView()方法中的position参数和getCount()方法的关系是:position参数的值不可能超过getCount()方法的返回值,也就是说,position参数值的范围是:0 getCount()-1。例如将getCount()的返回值设为Inte

11、ger.MAX_VALUE,这样当position的值为imageIds.length-1时,由于position的值仍然是小于getCount() -1的值,因此可以继续递增,而此时position % imageIds.length的值为0,也就是显示第一张图片了。列表控件列表视图是Android系统中比较常用的界面控件,它主要包含两方面信息:数据源和每项数据显示的格式。这两者之间通过适配器(Adapter)建立关联,适配器充当着媒人的角色,在为数据源与每项数据显示的格式介绍亲事之前,媒人需要对双方都要有所了解,因此创建Adapter时需传入数据源和每项数据显示的格式对应的布局文件作为参数

12、。通过列表控件的setAdapter()方法将列表与数据关联起来。列表控件 pleteTextViewSpinnerListViewExpandableListView pleteTextView运行效果图 Spinner运行效果图 列表组件列表控件复杂列表视图运行效果图 扩展下拉列表运行效果图 列表控件 pleteTextView自动提示 该控件继承自EditText控件,它拥有EditText的所有特点;可根据用户输入的内容,匹配指定的数据源,以列表的形式显示数据源中所有符合要求的数据,以供用户选择,减少用户的输入。 pleteTextView的主要属性有: pletionThreshol

13、d:设置最少输入的字符数,最小为1,默认为2; pletionHint:设置出现在列表中的提示信息;android:popupBackground:设置下拉列表的背景;android:dropDownVerticalOffset:设置下拉列表与文本框之间的垂直偏移像素,默认下拉列表是紧跟着文本框的;android:dropDownHorizontalOffset:设置下拉列表与文本框之间的水平偏移像素,默认下拉列表与文本框左对齐。列表控件Spinner下拉列表 显示时只显示列表中的某一项,单击Spinner列表时,会弹出一个下拉列表供用户进行选择。Spinner定义数据源的两种方式:1、在代码

14、中通过数组或集合进行定义;2、在XML文件中通过标签指定,然后在布局文件中,为其添加android:entries属性,指定数据源。列表控件ListView 列表 Android中使用非常广泛的组件之一,它以垂直列表的形式显示所有的列表项。实现ListView的两种方式:1、在布局文件中添加一个ListView,然后为ListView设置需要显示的内容(Adapter);2、让当前的Activity直接继承ListActivity,然后通过ListActivity的setListAdapter()方法设置需要显示的内容。列表控件列表控件Adapter的继承结构图 列表控件 ArrayAdapt

15、er:默认情况下只能显示文本,如果想显示其他的View控件,比如ImageView需要重写getView()方法,通常是将一个数组或者集合放在ArrayAdapter中。 SimpleAdapter:是一个简单的Adapter,它可以将静态的数据关联到XML布局文件中的某个View控件上,可以将列表中的数据指定为Map对象的集合。Map对象中的每一个键对应于列表中的每一项的一部分数据。而Map对象则包含了每一项的所有数据。也需要在XML文件中定义每一项数据的显示视图(控件),并且要与Map对象中的关键字(键)建立一一映射关系。 列表控件 使用SimpleAdapter可以自定义ListView

16、的列表项,需要5个参数: 第一个参数:context对象; 第二个参数:List? ExtendsMap 集合对象; 第三个参数:指定一个界面布局的ID; 第四个参数:是一个String类型的参数; 第五个参数:是一个int类型的参数。列表控件问题与讨论 尝试实现以左图的界面显示列表项。列表控件ExpandableListView扩展下拉列表 注意:SimpleExpandableListAdapter可以实现扩展下拉列表的功能,但是不能显示图片 。SimpleExpandableListAdapter的参数:参数1:上下文对象Context;参数2:一级列表集合,即省份的集合;参数3:一级列

17、表对应的布局文件;参数4:就是map中的key,指定要显示的信息;参数5:与参数4对应,指定显示信息的控件ID;参数6:二级列表集合,即城市的集合;参数7:二级列表对应的布局文件;参数8:就是map中的key,指定要显示的信息;参数9:与参数8对应,指定显示信息的控件ID;列表控件ExpandableListView扩展下拉列表 通过自定义Adapter实现,关键是要重写以下两个方法。getGroupView()getChildView()对话框 对话框是漂浮在Activity之上的小窗口,此时,Activity会失去焦点,而对话框会获取焦点。对话框通常用于通知,它会临时打断用户,执行一些与应

18、用程序相关的小任务,例如任务执行进度或登录提示等。Android中,主要的对话框有以下四种:AlertDialog:警示框,功能最丰富、应用最广的对话框,该对话框可以包含03个按钮,或者是包含复选框或单选按钮的列表。ProgressDialog:进度对话框,主要用于显示进度信息,以进度环或进度条的形式显示任务执行进度;DatePickerDialog:日期选择对话框,允许用户选择日期;TimePickerDialog:时间选择对话框,允许用户选择时间。对话框组件简单提示对话框 单选列表对话框 多选列表对话框 AlertDialog是Dialog的子类,它能创建大部分用户交互的对话框,也是系统推

19、荐的对话框类型。 对话框组件自定义输入对话框框 自定义列表对话框 对话框 如果要想实例化AlertDialog类往往需依靠其内部类:AlertDialog.Builder完成。使用AlertDialog创建对话框大致按如下步骤进行:第1步:创建AlertDialog.Builder对象,该对象是AlertDialog的创建器。第2步:调用AlertDialog.Builder方法为对话框设置图标、标题、内容等。第3步:调用AlertDialog.Builder的create()方法创建AlertDialog对话框第4步:调用AlertDialog的show()方法显示对话框。 对话框Build

20、er内部类的主要方法如下:(查看API文档)方法名作用public Builder setTitle设置对话框标题public Builder setMessage设置对话框内容public Builder setIcon设置对话框图标public Builder setPositiveButton添加肯定按钮(Yes)public Builder setNegativeButton添加否定按钮(No)public Builder setNeutralButton添加普通按钮注意:很多方法的返回类型都是Builder类型,Builder对象每调用一个方法就是为对话框添加一些内容,是对对话框的不

21、断完善,调用方法就是构造对话框的过程,每次返回的都是已构建好的对话框。对话框当程序中存在两个名称相同,包不同的类或接口时,应该怎么办? 程序中存在两种单击事件,一个是普通按钮的单击事件、一个是对话框中按钮的单击事件,两种事件的监听器是不一样的,一个是View.OnClickListener接口,一个是DialogInterface.OnClickListener接口,但它们的监听器接口名却都是OnclickListener,导入包时,只能导入一个接口,另一个必须用完整的包名+接口名才能引用,否则程序会认为引用的是导入的那个接口,从而导致编译不通过。 对话框对话框中包含三种类型的按钮,能否重复添

22、加?按钮有什么作用? 在AlertDialog对话框中,每种类型的按钮最多只有一个,也就是说,在AlertDialog对话框中不可能同时存在两个以上的“PositiveButton”,后面添加的会覆盖前面的。因此,对话框中按钮的数量最多为三个:肯定、否定、中性。这些名字和实际功能并没有联系,只是帮助记忆每个按钮主要做什么事。如何解决单击Back建退出对话框的问题?只需在构建时,添加builder.setCancelable(false)即可 对话框 创建Builder对象时,为什么有时传的是MainActivity.this,而有时传的是this?在Java中this表示当前类的对象,通常有两

23、种用法: 1、代表当前类的对象,使用this.*; 2、引用当前类的其他构造方法,通常使用this(*)。 如果Builder对象的创建是放在MainActivity的onCreate()方法中,此时this代表的就是MainActivity对象。 如果Builder对象的创建是放在View.OnClickListener的匿名内部类中,this代表的是该匿名内部类对象。 而Builder对象的创建需要传递一个Context类型的参数,MainActivity是Context类的子类,可以作为参数进行传递,在内部类中需要使用外部类的对象时,需使用外部类的类名.this。对话框自定义对话框 自定

24、义对话框,主要是对对话框的显示进行自定义,Builder对象提供了一个setView()方法,只需将我们定义好的布局控件传递进去即可达到我们想要的效果。菜单菜单简介 菜单是一种比较通用的用户组件,大部分软件都有该功能,它提供了熟悉的、一致的用户体验,在Android中,可以使用菜单表示当前Activity的一些可选的操作。 Android3.0以后,Android设备不再要求提供专门的菜单按钮。随着这一变化,android应用不再依赖过去的包含6个菜单项的面板,取而代之的是通过操作栏(ActionBar)来显示一些通用的用户动作。 在Android系统之中,菜单一共有三类:选项菜单(Optio

25、nsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。菜单Android 2.3桌面默认的选项菜单 菜单项超过六个时的效果图 早期版本的选项菜单最多包含六个菜单项,如果菜单中包含的菜单项多于六个时,第六项会自动显示为“更多”选项 。单击“更多”可以显示剩余的菜单项。选项菜单 OptionsMenu 选项菜单主要用于存放Activity的菜单项,通常是一些全局性的功能,例如搜索、电子邮件、设置等 菜单高版本中菜单项的位置 Android3.0以后,选项菜单的菜单项显示在操作栏(ActionBar)上。 默认情况下,系统会把所有的菜单项放在多余的操作中,用户可以通过操作栏

26、右侧的溢出图标或者是单击菜单按钮(前提是有菜单按钮)来显示菜单项。 为了能快速地访问一些重要的动作,可以设置菜单项的android:showAsAction属性值为“always”,使其显示在操作栏上 。 菜单个数不受限制,会以列表的形式显示。选项菜单 OptionsMenu 菜单选项菜单:OptionsMenu 选项菜单是最基本的菜单,如果要想实现选项菜单,只需在程序之中覆写android.app.Activity类的如下几个方法: public boolean onCreateOptionsMenu(Menu menu):此方法用于初始化菜单,将菜单项添加到菜单中,返回true表示显示菜单项,反之则不显示; public boolean onOptionsItemSelected(MenuItem item):当某一菜单项被选中后将触发该方法,传入的参数就是选中的菜单项,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论