《Android开发与应用4-Android用户界课件.ppt》由会员分享,可在线阅读,更多相关《Android开发与应用4-Android用户界课件.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Android 用户界面设计用户界面设计on android本章内容本章内容n视图组件的使用模式件的使用模式n常用常用组件件n高高级组件件n提示框与警告提示框与警告对话框框1.视图组件的使用模式视图组件的使用模式 就是就是Android应用程序的开用程序的开发过程。一般程。一般过程是程是先通先通过XML布局文件或布局文件或Java代代码创建界面布局,建界面布局,设定定组件件显示示样式,随后式,随后获取取UI组件件对象,并象,并处理理组件事件事件响件响应。n视图组件的定件的定义 n资源的源的访问n生成生成视图组件件资源源标识n视图组件的引用件的引用n视图组件的事件响件的事件响应n组件的常用属性件
2、的常用属性1.1视图组件的定义视图组件的定义n使用使用XML布局文件定布局文件定义视图组件件n使用使用Java代代码定定义视图组件件(不推荐不推荐)1.1视图组件的定义视图组件的定义n使用使用XML布局文件定布局文件定义视图组件件 Android平台平台为大多数大多数视图组件以及其子件以及其子类提供了提供了XML标记,可通可通过XML布局文件中的布局文件中的标记来定来定义视图组件。件。XML中的每中的每个元素代表了一个个元素代表了一个组件,即元素名称件,即元素名称对应相相应的的Java类。1.1视图组件的定义视图组件的定义 命名空间 fill_parentmatch_parentwrap_co
3、ntent1.1视图组件的定义视图组件的定义nandroid:id属性声明了属性声明了Button的的ID,这个个ID主要用主要用于在代于在代码中引用中引用这个个Button对象象“+id/submit”表示所表示所设设置的置的ID值表示后面的字符串是表示后面的字符串是ID资源源+表示需要建立新表示需要建立新资源名称,并添加到源名称,并添加到R.java文件中文件中斜杠后面的字符串(斜杠后面的字符串(submit)表示新)表示新资源的名称源的名称如果如果资源不是新添加的,或属于源不是新添加的,或属于Android框架的框架的ID资源,源,则不需要使用加号(不需要使用加号(+),但必),但必须添
4、加添加Android包的命名包的命名空空间,例如:,例如:android:id=android:id/submit系系统资源位置:源位置:D:androidandroid-sdkplatformsandroid-17dataresvalues1.1视图组件的定义视图组件的定义 Android开开发中中针对视图组件件显示示风格,提供了格,提供了多种多种资源来定源来定义。如字符串。如字符串资源、源、颜色色资源、尺寸源、尺寸资源、源、Drawable资源和源和样式式资源等。源等。1.2资源的访问资源的访问1.2资源的访问资源的访问:颜色资源颜色资源n在在Android中,中,颜色色值通通过RGB(红
5、、绿、蓝)三)三原色和一个透明度(原色和一个透明度(Alpha)值来表示。在来表示。在设置置颜色色值时需要以需要以“#”开开头,其中透明度,其中透明度值可以省略,可以省略,如果省略如果省略则表示完全不透明。表示完全不透明。n#RGB:#00F(蓝色色)n#ARGB:#700F(半透明半透明蓝色色)n#RRGGBB:#FF0000(红色色)n#AARRGGBB:#77FF0000(半透明半透明红色色)1.2资源的访问资源的访问:颜色资源颜色资源n颜色色资源文件位于源文件位于res/values目目录下,根下,根标记是是,在,在该标记内使用内使用标记定定义各种各种颜色,色,颜色色值可以使用上述四种
6、方式之一。可以使用上述四种方式之一。ncolors.xml颜色色资源文件源文件#FF0000#77FF00001.2资源的访问资源的访问:尺寸资源尺寸资源n尺寸尺寸资源文件位于源文件位于res/values目目录下,根下,根标记是是,在,在该标记内使用内使用标记定定义各种尺各种尺寸,尺寸寸,尺寸值可以使用上述几种方式之一。可以使用上述几种方式之一。npx(pixel,像素),像素)nin(inch,英寸),英寸)npt(points,磅),磅)ndp或或dip(独立像素):基于屏幕密度的抽象(独立像素):基于屏幕密度的抽象单位,在每英位,在每英寸寸160点的屏幕上,点的屏幕上,1dp=1px。
7、但随着屏幕密度的改。但随着屏幕密度的改变,dp和和px的的换算也会算也会变化。化。nsp(比例像素):用于字体的大小,可根据用(比例像素):用于字体的大小,可根据用户字体大小首字体大小首选项缩放。放。nmm(毫米)(毫米)1.2资源的访问资源的访问:尺寸资源尺寸资源ndimens.xml尺寸尺寸资源文件源文件 20px 25dp1.2资源的访问资源的访问:Drawable资源资源n可以使用可以使用图片作片作为资源,也可以使用多种源,也可以使用多种XML文件作文件作为资源。源。Drawable资源可源可针对屏幕不同分辨率,分屏幕不同分辨率,分别位于位于res目目录下的下的drawable-XXX
8、目目录内。内。drawable-XXX一般表示一般表示drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi和和drawable-xxhdpi这5个目个目录(部分(部分Android API版本版本仅有前有前3个目个目录)nDrawable资源源图片片资源源:png、jpg、gif和和9-Patch等格式等格式StateListDrawable资源源:能根据状能根据状态来来显示出不同的示出不同的图像像,如按如按钮会存在多种状会存在多种状态,如,如pressed、enabled或或focused等等1.2资源的访问资源的访问:Drawab
9、le资源资源nStateListDrawable资源文件根标记是资源文件根标记是,在,在该标记中使用该标记中使用标记设置以下两种属性标记设置以下两种属性:android:drawable:用于指定:用于指定Drawable资源资源android:state_XXX:用于指定一种状态:用于指定一种状态android:state_active设置是否处于激活状态,取值true、falseandroid:state_checked设置是否处于选中状态android:state_enabled设置是否处于可用状态android:state_first设置是否处于开始状态android:state_fo
10、cused设置是否处于获得焦点状态android:state_last设置是否处于结束状态android:state_middle设置是否处于中间状态android:state_pressed设置是否处于按下状态android:state_selected设置是否处于被选择状态1.2资源的访问资源的访问:Drawable资源资源 n见例例chap4-11.2资源的访问资源的访问:样式资源样式资源n设置置组件合适的件合适的颜色和尺寸色和尺寸组合搭配合搭配n而而样式式资源主要用于源主要用于对组件件显示示样式的式的统一控制,包含文字一控制,包含文字的大小、的大小、颜色、色、宽高等。高等。样式式资源文
11、件也位于源文件也位于res/values目目录内,根内,根标记是是,在,在该标记内使用内使用、标记定定义样式。式。1.2资源的访问资源的访问:样式资源样式资源 match_parent wrap_content#000000 30dp#0000FF 注册 1.3生成视图组件资源标识:自动生成视图组件资源标识:自动n在在XML资源源实例化例化过程中,程中,资源打包工具源打包工具aapt将解析将解析XML布布局文件中的局文件中的组件定件定义,随后会生成,随后会生成对应的的资源源标识,这样就就建立起建立起组件定件定义标识和和组件件实例的例的对应关系,关系,该关系存放于关系存放于工程工程gen目目录下
12、相下相应包的包的R.java文件中,可通文件中,可通过组件的定件的定义标识获取取对应的的对象象实例。例。n见例例chap4-11.4视图组件的引用视图组件的引用nandroid:idfindViewById()n使用使用setContentView()方法通方法通过布局布局id来来显示整个界面,示整个界面,使用使用findViewById()方法通方法通过按按钮的的id来来获取按取按钮对象。象。n例:例:protected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentV
13、iew(R.layout.activity_main);Button btn=(Button)findViewById(R.id.submit);.1.5视图组件的事件响应视图组件的事件响应n当用当用户户通通过过按按键键、触摸、滑、触摸、滑动动等等动动作与作与应应用程序交互用程序交互时时,需,需要要组组件件对对用用户户事件事件进进行响行响应应。n同同JSE平台一平台一样样,Android系系统为视图组统为视图组件定件定义义了用于捕了用于捕获获各种事件的各种事件的监监听器,听器,视图组视图组件可以使用件可以使用这这些些监监听器捕听器捕获获用用户户事件并予以响事件并予以响应应。1.5视图组件的事件
14、响应视图组件的事件响应n定定义事件事件监听器,再与听器,再与组件件绑定定 在代在代码中先定中先定义事件事件监听器,再通听器,再通过组件的件的setXXXListener()方法方法绑定定监听器听器public class MainActivity extends Activity private View.OnClickListener myListener=new View.OnClickListener()public void onClick(View v).;protected void onCreate(Bundle savedInstanceState).Button btn=(B
15、utton)findViewById(R.id.submit);btn.setOnClickListener(myListener);1.5视图组件的事件响应视图组件的事件响应n在与在与组件件绑定定时定定义事件事件监听器听器public class MainActivity extends Activity protected void onCreate(Bundle savedInstanceState).Button btn=(Button)findViewById(R.id.submit);btn.setOnClickListener(new View.OnClickListener()
16、public void onClick(View v)Toast.makeText(MainActivity.this,数据提交中.,Toast.LENGTH_LONG).show(););1.5视图组件的事件响应视图组件的事件响应n当前当前Activity类实现监听器接口听器接口 public class MainActivity extends Activity implements OnClickListener protected void onCreate(Bundle savedInstanceState).Button btn=(Button)findViewById(R.id.
17、submit);btn.setOnClickListener(this);public void onClick(View v).1.5视图组件的事件响应视图组件的事件响应nXML布局文件中布局文件中设置回置回调方法名方法名 该方法在方法在XML布局文件中布局文件中设置回置回调方法名,在方法名,在Java代代码中中实现该方法即可。此方法不是一个通用的方法,但方法即可。此方法不是一个通用的方法,但对按按钮等常等常用用组件的件的单击事件事件处理确理确实很方便。很方便。1.5视图组件的事件响应视图组件的事件响应activity_main.xml布局文件布局文件:1.5视图组件的事件响应视图组件的事件
18、响应Java代代码:public 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_LONG).show();1.6视图组件的常用属性视图组件的常用属性
19、nandroid:backgroundnandroid:idnandroid:layout_widthnandroid:layout_heightnandroid:layout_gravitynandroid:drawingCacheQualitynandroid:keepScreenOnnandroid:minHeightnandroid:minWidthnandroid:onClicknandroid:paddingnandroid:saveEnablednandroid:visibility1.7视图组件的常用事件视图组件的常用事件监听器类型监听器类型对对 应应 事事 件件说说 明明On
20、ClickListeneronClick单击事件单击事件OnLongClickListeneronLongClick长点击事件长点击事件OnFocusChangeListeneronFocusChange焦点改变事件焦点改变事件OnKeyonKey按键单击事件按键单击事件OnTouchOnTouch触摸事件触摸事件OnCreateContextMenuonCreateContextMenu创建上下文菜单事件创建上下文菜单事件2.常用组件常用组件 Android平台提供了一个平台提供了一个widget包,其中包含包,其中包含了各种了各种视图组件。件。2.常用组件常用组件n文本框文本框TextVi
21、ew android:autoLinkandroid:drawableBottomandroid:gravityandroid:hintandroid:maxLengthandroid:linesandroid:singleLineandroid:textColorandroid:textSizeandroid:textStyleandroid:typeface2.常用组件常用组件n编辑框编辑框EditText属性名称描述android:digits设置允许输入哪些字符,如“1234567890.+-*/%n()”android:inputType设置文本的类型,取值为:text、dateti
22、me、date、textPassword、textEmailAddress等android:numeric打开数字输入法2.常用组件常用组件n按按钮Button和和ImageButtonButton是一种按是一种按钮控件,用控件,用户能能够在在该控件上点控件上点击,并,并后引后引发相相应的事件的事件处理函数理函数ImageButton用以用以实现能能够显示示图像功能的控件按像功能的控件按钮2.常用组件常用组件n引入引入图片图片资源资源-将将play.png文件拷贝到文件拷贝到/res/drawable相应相应文件夹下文件夹下-在在/res目录上选择目录上选择Refresh图片按钮加背景和不加背
23、景区别2.常用组件常用组件Button button=(Button)findViewById(R.id.btn);ImageButton imageButton=(ImageButton)findViewById(R.id.imgBtn);button.setText(Button按钮);/代码中设置按钮的图片imageButton.setImageResource(R.drawable.play);2.常用组件常用组件n图片片组件件ImageViewandroid:adjustViewBounds设置ImageView是否调整边界来保持图片的长宽比(需要与maxWidth、MaxHeigh
24、t一起使用,否则单独使用没有效果)android:maxHeight设置ImageView的最大高度,需要设置android:adjustViewBounds为真android:maxWidth设置ImageView的最大宽度,需要设置android:adjustViewBounds为真android:scaleType设置图片如何缩放或移动以适应ImageView的大小,属性值为常量:matrix(使用matrix方式缩放)、fitXY(不按比例缩放图片,使图片完全适应于此ImageView中)、fitStart(按比例缩放图片,使图片完全适应于此ImageView,并位于ImageView
25、左上角)、fitCenter(按比例缩放图片,使图片完全适应于此ImageView,且显示在ImageView的中间)、fitEnd(按比例缩放图片,使图片完全适应于此ImageView,且显示在View的右下角)、center(按原图大小显示图片,但图片宽高大于ImageView的宽高时,只显示图片中间部分)、centerCrop(按比例缩放图片,直至图片完全覆盖ImageView)、centerInside(按比例缩放,直至ImageView能完全显示该图片)android:src设置图片来源2.常用组件常用组件n图片片组件件ImageView第第1个个视图组件件设置最大置最大宽度和高度,
26、允度和高度,允许自自动缩放;放;第第2个个视图组件件设置按比例置按比例缩放,放,缩放后位于放后位于组件的左上角;件的左上角;第第3个个视图组件件设置按原大小置按原大小显示示图片,超出片,超出组件范件范围时,只,只显示示图片中片中间部分;部分;第第4个个视图组件件为图片着色,片着色,设置的是半透明的置的是半透明的蓝色。色。2.常用组件常用组件n多多选组件件CheckBoxn单选组件件RadioButtonnRadioGroup是是RadioButton的承的承载体,程序运行体,程序运行时不可不可见,包含一个或多个,包含一个或多个RadioGroup2.常用组件常用组件n单选多多选组件使用的件使用
27、的监听器听器RadioButton.OnClickListenerCheckBox.OnClickListenerRadioGroup.OnCheckedChangeListenerCompoundButton.OnCheckedChangeListenern代代码如下如下2.常用组件常用组件n下拉列表下拉列表Spinner 能能够从多个从多个选项中中选一一选项的控件,的控件,类似于桌面程序的似于桌面程序的组合框(合框(ComboBox),但没有),但没有组合框的下拉菜合框的下拉菜单,而是使用浮,而是使用浮动菜菜单为用用户提供提供选择。2.常用组件常用组件n如果如果未在未在布局文件中指定布局文
28、件中指定android:entries属性,属性,也可在也可在Java代代码中通中通过适配器的方式来指定列表适配器的方式来指定列表项。n为下拉列表指定适配器,通常分下拉列表指定适配器,通常分为以下以下3个步个步骤创建一个适配器建一个适配器对象象n通通过数数组资源文件源文件创建适配器建适配器对象象n通通过字符串数字符串数组创建适配器建适配器对象象为适配器适配器设置下拉列表在下拉置下拉列表在下拉时的的选项样式式将适配器与将适配器与选择列表关列表关联 2.常用组件常用组件n自自动完成文本框完成文本框AutoCompleteTextView 当当输入若干个字符后,能入若干个字符后,能够根据根据输入字符
29、入字符显示一个下拉菜示一个下拉菜单,下拉菜,下拉菜单中的中的选项与用与用户输入的字符相关,供用入的字符相关,供用户选择。2.常用组件常用组件n日期日期选择器器DatePickern时间选择器器TimePickernDatePicker事件事件监听器听器OnDateChangedListenernTimePicker事件事件监听器听器OnTimeChangedListener 3.高级组件高级组件n进度条度条ProgressBar 当在下当在下载文件、更新数据、安装文件、更新数据、安装软件等件等费时操作操作时,通,通过进度条来提示用度条来提示用户执行的行的进度。度。进度条通常会和度条通常会和Ha
30、ndler联合合实现后台后台进度度显示效果。示效果。n两个常用方法两个常用方法-setProgress(int progress):设置置进度完成的百分比。度完成的百分比。-incrementProgressBy(int diff):设置置进度条的度条的进度增加或减少,度增加或减少,当参数当参数为正数正数时表示表示进度在度在递增,当参数增,当参数为负数数时表示表示进度在度在递减。减。属性名称描述android:max设置进度条最大值android:progress指定进度条完成的进度值android:progressDrawable设置进度条的轨道的绘制形式3.高级组件高级组件n进度条度条Pr
31、ogressBar3.高级组件高级组件n拖拖动条条SeekBar 与与进度条度条类似,通似,通过可拖可拖动的滑的滑块来改来改变值,通常用于,通常用于对数数值的的调节,例如,例如调整音量、亮度等。整音量、亮度等。属性属性android:thumb可改可改变拖拖动滑滑块的外的外观监听器听器OnSeekBarChangeListener常用方法常用方法n开始拖开始拖动滑滑块时onStartTrackingTouch方法方法n拖拖动过程中程中进度度值改改变时onProgressChanged方法方法n停止拖停止拖动滑滑块时onStopTrackingTouch方法方法3.高级组件高级组件n评分条分条R
32、atingBar 与拖与拖动条条类似,都通似,都通过用用户拖拖动来改来改变进度,区度,区别在于在于评分条是以星表示分条是以星表示进度。度。属属 性性 名名 称称描描 述述android:isIndicator设置该评分条是否允许用户修改,true(不允许);false(允许)android:numStars设置该评分条共有多少个星android:rating设置该评分条默认星级android:stepSize设置每次最少晋级单位,默认0.5个方法方法描描 述述getRating()获取等级,表示选中了几颗星getStepSize()获取晋级单位getProgress()获取当前星级3.高级组件
33、高级组件n评分条分条RatingBar4.提示框与警告对话框提示框与警告对话框 n消息提示框消息提示框创建建Toast对象,可以通象,可以通过构造方法构造方法创建,也可以通建,也可以通过调用静用静态方法方法makeText()来来创建。建。调用用Toast类的相的相应方法来方法来设置消息提示框的置消息提示框的对齐方式、方式、页边距、距、显示内容等,常用方法如表示内容等,常用方法如表4.9所示。所示。调用用Toast类的的show()方法,方法,显示消息提示框。示消息提示框。4.提示框与警告对话框提示框与警告对话框 n消息提示框消息提示框方方 法法 名名 称称描描 述述makeText(Cont
34、extcontext,intresId,intduration)创建一个Toast对象,提示文本从资源id获取,duration为提示框显示时间常量makeText(Contextcontext,CharSequencetext,intduration)创建一个Toast对象,text为提示文本setDuration(intduration)设置消息提示框的显示时间,取值为:Toast.LENGTH_SHORT或Toast.LENGTH_LONGsetGravity(intgravity,intxOffset,intyOffset)设置消息提示框的位置,gravity用于指定对齐方式,xOff
35、set,和yOffset用于指定偏移值setMargin(floathorizontalMargin,floatverticalMargin)设置消息提示框的页边距setText(CharSequences)设置消息提示框的文本信息setView(Viewview)设置消息提示框中显示的视图4.提示框与警告对话框提示框与警告对话框 n消息提示框消息提示框4.提示框与警告对话框提示框与警告对话框 n警告警告对话框框:AlertDialog 警告警告对话框使用框使用AlertDialog类,可以生成,可以生成带1个到个到3个个按按钮的提示的提示对话框,也可以生成框,也可以生成带单选列表或多列表或多
36、选列表的列表列表的列表对话框。框。4.提示框与警告对话框提示框与警告对话框 n警告警告对话框框方方 法法 名名 称称描描 述述setButton(intwhichButton,CharSequencetext,DialogInterface.OnClickListenerlistener)设置对话框按钮,并对按钮增加监听器,其中whichButton指定按钮类型(int型值),取值为:DialogInterface.BUTTON_POSITIVE(确定按钮)DialogInterface.BUTTON_NEUTRAL(中立按钮)DialogInterface.BUTTON_NEGATIVE(取
37、消按钮)setButton(intwhichButton,CharSequencetext,Messagemsg)设置对话框按钮,当按钮被按下时发送消息setMessage(CharSequencemsg)设置对话框提示内容setTitle(CharSequencetitle)设置对话框标题show()显示对话框4.提示框与警告对话框提示框与警告对话框 n警告警告对话框框:AlertDialog.Builder 使用使用AlertDialog类只能生成只能生成带按按钮的提示的提示对话框,如果框,如果要生成要生成带列表框的列表框的对话框,框,则需要使用需要使用AlertDialog.Builder类。nAlertDialog.Builder类的常用方法如下的常用方法如下create()setNegativeButton()setNeutralButton()setPositiveButton()setItems():在在对话框中添加列表框中添加列表setMultiChoiceItems():在在对话框中添加多框中添加多选列表列表setSingleChoiceItems():在在对话框中添加框中添加单选列表列表4.提示框与警告对话框提示框与警告对话框 n警告警告对话框框4.提示框与警告对话框提示框与警告对话框 n警告警告对话框框作业作业P1061,6,7thanks
限制150内