《Android开发与应用4 Android用户界课件.ppt》由会员分享,可在线阅读,更多相关《Android开发与应用4 Android用户界课件.ppt(58页珍藏版)》请在三一办公上搜索。
1、Android 用户界面设计,on android,本章内容,视图组件的使用模式常用组件高级组件提示框与警告对话框,1.视图组件的使用模式,就是Android应用程序的开发过程。一般过程是先通过XML布局文件或Java代码创建界面布局,设定组件显示样式,随后获取UI组件对象,并处理组件事件响应。视图组件的定义 资源的访问生成视图组件资源标识视图组件的引用视图组件的事件响应组件的常用属性,1.1视图组件的定义,使用XML布局文件定义视图组件使用Java代码定义视图组件(不推荐),1.1视图组件的定义,使用XML布局文件定义视图组件 Android平台为大多数视图组件以及其子类提供了XML标记,可
2、通过XML布局文件中的标记来定义视图组件。XML中的每个元素代表了一个组件,即元素名称对应相应的Java类。,1.1视图组件的定义, ,命名空间,fill_parentmatch_parentwrap_content,1.1视图组件的定义,android:id属性声明了Button的ID,这个ID主要用于在代码中引用这个Button对象“+id/submit”表示所设置的ID值表示后面的字符串是ID资源+表示需要建立新资源名称,并添加到R.java文件中斜杠后面的字符串(submit)表示新资源的名称如果资源不是新添加的,或属于Android框架的ID资源,则不需要使用加号(+),但必须添加A
3、ndroid包的命名空间,例如:android:id=android:id/submit系统资源位置:D:androidandroid-sdkplatformsandroid-17dataresvalues,1.1视图组件的定义,Android开发中针对视图组件显示风格,提供了多种资源来定义。如字符串资源、颜色资源、尺寸资源、Drawable资源和样式资源等。,1.2资源的访问,1.2资源的访问:颜色资源,在Android中,颜色值通过RGB(红、绿、蓝)三原色和一个透明度(Alpha)值来表示。在设置颜色值时需要以“#”开头,其中透明度值可以省略,如果省略则表示完全不透明。#RGB:#00F
4、(蓝色)#ARGB:#700F(半透明蓝色)#RRGGBB:#FF0000(红色)#AARRGGBB:#77FF0000(半透明红色),1.2资源的访问:颜色资源,颜色资源文件位于res/values目录下,根标记是,在该标记内使用标记定义各种颜色,颜色值可以使用上述四种方式之一。colors.xml颜色资源文件 #FF0000 #77FF0000,1.2资源的访问:尺寸资源,尺寸资源文件位于res/values目录下,根标记是,在该标记内使用标记定义各种尺寸,尺寸值可以使用上述几种方式之一。px(pixel,像素)in(inch,英寸) pt(points,磅)dp或dip(独立像素):基于
5、屏幕密度的抽象单位,在每英寸160点的屏幕上,1dp=1px。但随着屏幕密度的改变,dp和px的换算也会变化。sp(比例像素):用于字体的大小,可根据用户字体大小首选项缩放。 mm(毫米),1.2资源的访问:尺寸资源,dimens.xml尺寸资源文件 20px 25dp,1.2资源的访问:Drawable资源,可以使用图片作为资源,也可以使用多种XML文件作为资源。Drawable资源可针对屏幕不同分辨率,分别位于res目录下的drawable-XXX目录内。drawable-XXX一般表示drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-x
6、hdpi和drawable-xxhdpi这5个目录(部分Android API版本仅有前3个目录)Drawable资源图片资源:png、jpg、gif和9-Patch等格式StateListDrawable资源:能根据状态来显示出不同的图像,如按钮会存在多种状态,如pressed、enabled或focused等,1.2资源的访问:Drawable资源,StateListDrawable资源文件根标记是,在该标记中使用标记设置以下两种属性:android:drawable:用于指定Drawable资源android:state_XXX:用于指定一种状态,1.2资源的访问:Drawable资源,
7、 见例chap4-1,1.2资源的访问:样式资源,设置组件合适的颜色和尺寸组合搭配而样式资源主要用于对组件显示样式的统一控制,包含文字的大小、颜色、宽高等。样式资源文件也位于res/values目录内,根标记是,在该标记内使用、标记定义样式。,1.2资源的访问:样式资源, match_parent wrap_content #000000 30dp #0000FF 注册 ,1.3生成视图组件资源标识:自动,在XML资源实例化过程中,资源打包工具aapt将解析XML布局文件中的组件定义,随后会生成对应的资源标识,这样就建立起组件定义标识和组件实例的对应关系,该关系存放于工程gen目录下相应包的R
8、.java文件中,可通过组件的定义标识获取对应的对象实例。见例chap4-1,1.4视图组件的引用,android:idfindViewById()使用setContentView()方法通过布局id来显示整个界面,使用findViewById()方法通过按钮的id来获取按钮对象。例:,protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn=(Button) findViewB
9、yId(R.id.submit); .,1.5视图组件的事件响应,当用户通过按键、触摸、滑动等动作与应用程序交互时,需要组件对用户事件进行响应。同JSE平台一样,Android系统为视图组件定义了用于捕获各种事件的监听器,视图组件可以使用这些监听器捕获用户事件并予以响应。,1.5视图组件的事件响应,定义事件监听器,再与组件绑定 在代码中先定义事件监听器,再通过组件的setXXXListener()方法绑定监听器,public class MainActivity extends Activity private View.OnClickListener myListener = new Vie
10、w.OnClickListener() public void onClick(View v) . ; protected void onCreate(Bundle savedInstanceState) . Button btn = (Button)findViewById(R.id.submit); btn.setOnClickListener(myListener); ,1.5视图组件的事件响应,在与组件绑定时定义事件监听器,ublic class MainActivity extends Activity protected void onCreate(Bundle savedInst
11、anceState) . Button btn = (Button) findViewById(R.id.submit); btn.setOnClickListener(new View.OnClickListener() public void onClick(View v) Toast.makeText(MainActivity.this, 数据提交中., Toast.LENGTH_LONG).show(); ); ,1.5视图组件的事件响应,当前Activity类实现监听器接口,public class MainActivity extends Activity implements O
12、nClickListener protected void onCreate(Bundle savedInstanceState) . Button btn=(Button) findViewById(R.id.submit); btn.setOnClickListener(this); public void onClick(View v) . ,1.5视图组件的事件响应,XML布局文件中设置回调方法名 该方法在XML布局文件中设置回调方法名,在Java代码中实现该方法即可。此方法不是一个通用的方法,但对按钮等常用组件的单击事件处理确实很方便。,1.5视图组件的事件响应,activity_m
13、ain.xml布局文件:, ,1.5视图组件的事件响应,Java代码:,ublic class MainActivity extends Activity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); public void myClick(View v) Toast.makeText(MainActivity.this, 数据提交中., Toast.LENGTH_LON
14、G).show(); ,1.6视图组件的常用属性,android:backgroundandroid:idandroid:layout_widthandroid:layout_heightandroid:layout_gravityandroid:drawingCacheQualityandroid:keepScreenOnandroid:minHeightandroid:minWidthandroid:onClickandroid:paddingandroid:saveEnabledandroid:visibility,1.7视图组件的常用事件,2.常用组件,Android平台提供了一个wi
15、dget包,其中包含了各种视图组件。,2.常用组件,文本框TextView android:autoLinkandroid:drawableBottomandroid:gravityandroid:hintandroid:maxLengthandroid:linesandroid:singleLineandroid:textColorandroid:textSizeandroid:textStyleandroid:typeface,2.常用组件,编辑框EditText,2.常用组件,按钮Button和ImageButtonButton是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处
16、理函数ImageButton用以实现能够显示图像功能的控件按钮,2.常用组件,图片按钮加背景和不加背景区别,2.常用组件,Button button = (Button)findViewById(R.id.btn);ImageButton imageButton = (ImageButton)findViewById(R.id.imgBtn);button.setText(Button按钮);/代码中设置按钮的图片imageButton.setImageResource(R.drawable.play);,2.常用组件,图片组件ImageView,2.常用组件,图片组件ImageView第1个
17、视图组件设置最大宽度和高度,允许自动缩放;第2个视图组件设置按比例缩放,缩放后位于组件的左上角;第3个视图组件设置按原大小显示图片,超出组件范围时,只显示图片中间部分;第4个视图组件为图片着色,设置的是半透明的蓝色。,2.常用组件,多选组件CheckBox单选组件RadioButtonRadioGroup是RadioButton的承载体,程序运行时不可见,包含一个或多个RadioGroup,2.常用组件,单选多选组件使用的监听器RadioButton.OnClickListenerCheckBox.OnClickListenerRadioGroup.OnCheckedChangeListene
18、rCompoundButton.OnCheckedChangeListener代码如下,2.常用组件,下拉列表Spinner 能够从多个选项中选一选项的控件,类似于桌面程序的组合框(ComboBox),但没有组合框的下拉菜单,而是使用浮动菜单为用户提供选择。,2.常用组件,如果未在布局文件中指定android:entries属性,也可在Java代码中通过适配器的方式来指定列表项。为下拉列表指定适配器,通常分为以下3个步骤创建一个适配器对象通过数组资源文件创建适配器对象通过字符串数组创建适配器对象为适配器设置下拉列表在下拉时的选项样式将适配器与选择列表关联,2.常用组件,自动完成文本框AutoC
19、ompleteTextView 当输入若干个字符后,能够根据输入字符显示一个下拉菜单,下拉菜单中的选项与用户输入的字符相关,供用户选择。,2.常用组件,日期选择器DatePicker时间选择器TimePickerDatePicker事件监听器OnDateChangedListenerTimePicker事件监听器OnTimeChangedListener,3.高级组件,进度条ProgressBar 当在下载文件、更新数据、安装软件等费时操作时,通过进度条来提示用户执行的进度。进度条通常会和Handler联合实现后台进度显示效果。 两个常用方法-setProgress(int progress)
20、:设置进度完成的百分比。-incrementProgressBy(int diff):设置进度条的进度增加或减少,当参数为正数时表示进度在递增,当参数为负数时表示进度在递减。,3.高级组件,进度条ProgressBar,3.高级组件,拖动条SeekBar 与进度条类似,通过可拖动的滑块来改变值,通常用于对数值的调节,例如调整音量、亮度等。 属性android:thumb可改变拖动滑块的外观监听器OnSeekBarChangeListener常用方法开始拖动滑块时onStartTrackingTouch方法拖动过程中进度值改变时onProgressChanged方法停止拖动滑块时onStopTr
21、ackingTouch方法,3.高级组件,评分条RatingBar 与拖动条类似,都通过用户拖动来改变进度,区别在于评分条是以星表示进度。,3.高级组件,评分条RatingBar,4.提示框与警告对话框,消息提示框创建Toast对象,可以通过构造方法创建,也可以通过调用静态方法makeText()来创建。调用Toast类的相应方法来设置消息提示框的对齐方式、页边距、显示内容等,常用方法如表4.9所示。调用Toast类的show()方法,显示消息提示框。,4.提示框与警告对话框,消息提示框,4.提示框与警告对话框,消息提示框,4.提示框与警告对话框,警告对话框:AlertDialog 警告对话框
22、使用AlertDialog类,可以生成带1个到3个按钮的提示对话框,也可以生成带单选列表或多选列表的列表对话框。,4.提示框与警告对话框,警告对话框,4.提示框与警告对话框,警告对话框:AlertDialog.Builder 使用AlertDialog类只能生成带按钮的提示对话框,如果要生成带列表框的对话框,则需要使用AlertDialog.Builder类。AlertDialog.Builder类的常用方法如下create()setNegativeButton()setNeutralButton()setPositiveButton()setItems():在对话框中添加列表setMultiChoiceItems():在对话框中添加多选列表setSingleChoiceItems():在对话框中添加单选列表,4.提示框与警告对话框,警告对话框,4.提示框与警告对话框,警告对话框,作业,P1061,6,7,thanks,