android高级用户界面设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目十 高级用户界面设计
掌握自动完成文本框AutoCompleteTextView的使用方法。
一 ︑ 项 目 要 求
掌握进度条ProgressBar的使用方法。 掌握拖动条SeekBar的使用方法。
项目 要求
掌握星级评分条RatingBar的使用方法。 掌握选项卡TabHost的使用方法。
掌握图像切换器ImageSwitcher的使用方法。
在 Android 中 AutoCompleteTextView 组 件 类 继 承 自 EditText 类 , 所 以
二 ︑ 项 目 相 关 知 识
EditText组件所支持的属性,AutoCompleteTextView 组件类都可以进行直接的 调用。AutoCompleteTextView支持的XML属性如表10-1所示。
Android移动开发
项目化教程
03
进阶篇
项目十 高级用户界面设计
本 章 导 读
在前几个项目中,我们已经掌握Android应用程序中基本组
件的使用方法,并学习了Android中的Activity类的编写。
在一些项目中为了实现一些特殊效果,需要一些高级组件来 丰富UI的效果,本章项目我们就来学习自动完成文本框、消 息提示框、对话框等一些高级组件的设计和开发。
7
项目十 高级用户界面设计
2)主活动文件MainActivity.Java程序
二 ︑ 项 目 相 关 知 识
public class MainActivity extends Activity { /** 成员变量:字符串数组,用于保存下拉菜单列表项 */ private static final String[] COUNTRIES = { "天猫", "天气预报", "天天向上", "天津", "天津小吃", "天津现代职业技术学院", "美丽天津" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取自动完成文本框 final AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); // 创建一个ArrayAdapter适配器,显示列表项 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);
掌握画廊视图 Gallery 的使用方法。 掌握消息提示框 Toast 的使用方法。 掌握实训项目仿Windows 7图片预览窗格效果的实现方法。
3
项目十 高级用户界面设计
01
自动完成文本框AutoCompleteTextView
自动完成文本框(AutoCompleteTextView),可
二 ︑ 项 目 相 关 知 识
表10-1 AutoCompleteTextView支持的XML属性
XML属性 android:completionHint android:completionThreshold android:dropDownHeight android:dropDownHorizontalOffset android:dropDownVerticalOffset android:dropDownWidth android:popupBackGround android:ems 描 述 为弹出的下拉菜单指定提示标题 指定用户至少输入几个字符才会显示提示,默认为2 指定下拉菜单的高度 指定下拉菜单与文本之间的水平偏移,下拉菜单默认 与文本框左对齐 指定下拉菜单与文本之间的垂直偏移,下拉菜单默认 紧跟文本框 指定下拉菜单的宽度 为下拉菜单设置背景 设置输入字符的长度。当设置该属性后,控件显示的 长度就为此长度,超出的部分将不显示
5
项目十 高级用户界面设计
高级组件的程序开发与一般组件程序开发有所不同。在高级组件开发中,一
二 ︑ 项 目 相 关 知 识
般需要XML文件和Java程序的配合使用才能完成,下面是一个带自动提示功能的 搜索框的实现,程序如下所示:
1)布局文件activity_main.xml 程序代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <AutoCompleteTextView android:id="@+id/autoCompleteTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content"
二 ︑ 项 目 相 关 知 识
"?android:attr/progressBarStyle":逆时针旋转的、半封闭的、中等圆形进度条。
"?android:attr/progressBarStyleHorizontal":细的、水平方向的进度条。
"?android:attr/progressBarStyleInverse":逆时针旋转的、半封闭的、中等圆形普 通进度条。
8
项目十 高级用户界面设计
二 ︑ 项 目 相 关 知 识
// 自动完成文本框与适配器关联 autoCompleteTextView.setAdapter(adapter); // 获取按钮,并添加单击事件监听器 Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 通过消息提示框,显示自动完成文本框中输入的内容 Toast.makeText(MainActivity.this, autoCompleteTextView.getText().toString(), Toast.LENGTH_SHORT).show(); } }); } }
根据用户输入的内容,匹配指定的数据源,以列表的形式 显示数据源中所有符合要求的数据,以供用户选择,减少 用户的输入内容,方便用户使用。例如常用的百度搜索。
自动完成文本框的定义格式如下:
<AutoCompleteTextView 属性列表 > </AutoCompleteTextView> 4
项目十 高级用户界面设计
提示
另外,还有一种进度条,可以直接
在窗口标题上显示,这种进度条不需要
使用 ProgressBar 组件,它可以直接由 Activity方法进行启动和使用。
11
项目十 高级用户界面设计
二 ︑ 项 目 相 关 知 识
在开发时,我们可以通过style属性为ProgressBar指定风格,该属性支持如下几种属性 值: @android:style/Widget.ProgressBar.Horizontal:水平进度条。 @android:style/Widget.ProgressBar.Inverse:细的、顺时针旋转的、中等圆形普 通进度条。 @android:style/Widget.ProgressBar.Large:粗的、顺时针旋转的、大圆形进度条。 @android:style/Widget.ProgressBar.Large.Inverse :粗的、顺时针旋转的、大圆
"?androiห้องสมุดไป่ตู้:attr/progressBarStyleLarge":逆时针旋转的、全封闭的、大圆形进度条。
"?android:attr/progressBarStyleLargeInverse" :逆时针旋转的、全封闭的、大圆 形普通进度条。 "?android:attr/progressBarStyleSmall":逆时针旋转的、半封闭的、小圆形进度条。 "?android:attr/progressBarStyleSmallInverse" :逆时针旋转的、半封闭的、小圆 形进度条。 13
9
项目十 高级用户界面设计
二 ︑ 项 目 相 关 知 识
实现的效果如图10-1所示。
图10-1 AutoCompleteTextView实现效果图
10
项目十 高级用户界面设计
02
进度条ProgressBar
二 ︑ 项 目 相 关 知 识
ProgressBar 也 是 UI 界 面 中 常 用的一种高级组件,通常用于向用户 显示某些耗时操作完成的百分比。 在 实际应用中,当一个应用程序在后台 执行项目时(如下载项目),前台界 面不会有任何信息,这时用户根本不 知道程序是否在执行,以及执行的进 度等,因此需要使用 ProgressBar 来 显示程序执行的进度。
项目十 高级用户界面设计
ProgressBar在开发的时候支持如表10-2所示的属性。
二 ︑ 项 目 相 关 知 识
表10-2 ProgressBar支持的XML属性
XML属性 android:max android:progress android: progressDrawable android:mindeterminate android:mindeterminateDrawable android:mindeterminateDuration 说 明 设置该进度条的最大值 设置该进度条的已完成进度值 设置该进度条的轨道的绘制形式 若该属性设为true,则进度条不精确显示进度 设置绘制不显示进度的进度条的Drawable对象 该属性不精确显示进度的持续时间
形普通进度条。
@android:style/Widget.ProgressBar.Small:细的、顺时针旋转的、小圆形进度条。 @android:style/Widget.ProgressBar.Small.Inverse :细的、顺时针旋转的、小圆 形普通进度条。 12
项目十 高级用户界面设计
14
项目十 高级用户界面设计
二 ︑ 项 目 相 关 知 识
ProgressBar的常用方法有以下两个:
SetProgress(int) : 设 置 进 度 的 完
提示
在进行开发的时候,如果需要在标题上显 示 的 进 度 条 , 我 们 可 以 首 先 调 用 Activity 的 requestWindowFeature() 方法,然后传入参数 启用特定的窗口特征,其参数选择分为带进度的 进度Window.FEATURE_PROGRESS和不带进度 的 进 度 Window.FEATURE_ INDETERMIN ATE_PROGRESS 的 两 种 参 数 , 然 后 调 用 ActivitysetProgressBarVisibility (boolean) 方 法即可完成操作。 15
6
项目十 高级用户界面设计
二 ︑ 项 目 相 关 知 识
android:layout_weight="7" android:completionHint="输入搜索内容" //在下拉菜单指定提示标题 android:completionThreshold="1" //指定用户至少输入几个字符才会显示提示 android:text="" > </AutoCompleteTextView> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_weight="1" android:text="搜索" /> </LinearLayout>