




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android应用程序界面编程,界面编程与视图(View)组件,Android应用的所有UI组件都继承自View类。ViewGroup也是继承自View类,但是ViewGroup主要用作其他UI控件的容器。,界面编程与视图(View)组件,View和ViewGroup的关系,AndroidSDK文档的阅读,AndroidSDK文档在安装目录里doc目录下。,使用XML布局控制UI界面,Android推荐使用XML布局文件来控制视图。将视图控制逻辑从Java代码中分离出来,放入XML文件中控制,体现了MVC的设计思想。通过如下代码在Activity中显示视图:setContentView(R.layout.);通过如下方法访问指定的UI组件:findViewById(R.id.);,在代码中控制UI界面,Android允许开发者在代码中控制UI界面。例子CodeView中描述了在代码中完全控制UI界面。,使用XML和Java代码共同控制UI界面,在Java中控制UI界面繁琐,不利于解耦。在XML布局文件中控制UI界面虽然方便,但不够灵活。使用XML布局文件和Java代码共同控制UI界面,可以达到跟好的效果。,开发自定义的View,当Android系统提供的UI不能满足需求时,就可以通过继承View类来自定义UI组件。重写View类的一个或多个方法。重要方法:onDraw(Canvas):绘制组件的内容onKeyDown(int,KeyEvent):某个键被按下onTouchEvent(MotionEvent):发生触摸事件,基本界面组件,文本框(TextView),TextView的作用是在界面上显示文字。常用属性:android:ellipsize设置当文本超出了TextView的长度时如何处理android:drawableLeft在文本框左边绘制指定图像,文本框(TextView),android:autoLink设置文本的链接属性。(none:不设置超链接,web:将文本中的URL地址转换为链接,phone:将文本中的电话转换为链接,map:将文本中的街道地址转换为链接)。android:hint当文本框内容为空时,默认的提示文字。,编辑框(EditText),编辑框的主要作用是接收用户的输入。编辑框继承自文本框,因此支持文本框的所有属性。常用属性:android:editable设置该文本框是否可编辑android:singleLine是否为单行模式,编辑框(EditText),android:password将文本框设置为密码框android:hint当文本框为空时,默认的提示文字android:digits设置文本框能接收的字符android:phoneNumber设置文本框只能接受电话号码,按钮(Button),按钮的主要作用是响应用户的单击事件,当用户单击按钮,按钮会触发一个OnClick事件。常用属性:android:background设置背景颜色或背景图片android:src链接到一个资源文件,为按钮设置动态效果,按钮(Button),响应用户的单击事件:mybtn=(Button)findViewById(R.id.mybtn);mybtn.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)/处理事件);,图片按钮(ImageButton),图片按钮(ImageButton)继承自按钮(Button),两者的区别是图片按钮上不可显示文字。常用属性:android:img设置按钮上显示的图片,单选按钮(RadioButton),RadioGroup是一个单选按钮组,组中的每一个RadioButton代表一个选项。每一组中最多只有一个RadioButton可以被选中常用属性:android:checked初始状态是否被选中。,单选按钮(RadioButton),响应onCheckedChanged事件:myRadioGroup=(RadioGroup)findViewById(R.id.myRadioGroup);myRadioButton1=(RadioButton)findViewById(R.id.myRadioButton1);myRadioButton2=(RadioButton)findViewById(R.id.myRadioButton2);myRadioGroup.setOnCheckedChangeListener(newOnCheckedChangeListener()OverridepublicvoidonCheckedChanged(RadioGroupgroup,intcheckedId)/处理事件if(checkedId=myRadioButton1.getId()sex=男;if(checkedId=myRadioButton2.getId()sex=女;);,复选按钮(CheckBox),复选按钮(CheckBox)中可以有多个选项被选中。常用属性:android:checked初始状态是否被选中。,状态开关按钮(ToggleButton),ToggleButton有两种状态,开和关,通常用于切换程序中的某种状态。常用属性:android:checked设置该按钮是否被选中android:textOff当按钮没被选中时显示的文本android:textOn当按钮被选中时显示的文本,状态开关按钮(ToggleButton),响应onCheckedChanged事件ToggleButtontoggle=(ToggleButton)findViewById(R.id.toggle);toggle.setOnCheckedChangeListener(newOnCheckedChangeListener()OverridepublicvoidonCheckedChanged(CompoundButtonarg0,booleanarg1)/处理事件);,时钟(AnalogClock和DigitalClock),时钟组件的功能是在界面上显示当前时间。时钟组件分为模拟时钟和数字时钟。模拟时钟不能显示当前秒数。,计时器(Chronometer),计时器组件并不显示当前时间。它显示从某个时间开始,一共过去了多少时间。常用方法:setBase(longbase):设置起始时间setFormat(Stringformat):设置时间格式,计时器(Chronometer),start():开始计时end():停止计时setOnChronometerTickListener(Chronometer.OnChronometerTickListenerlistener):为计时器绑定事件监听器,当计时器改变时触发该监听器。,图像视图(ImageView),ImageView的主要功能是显示图片。常用属性:android:adjustViewBounds是否调整自己的边界来保持所显示图片的长宽比android:src设置所显示的图片对象id,图像视图(ImageView),android:scaleType设置所显示的图片如何缩放或移动以适应ImageView的大小。属性值如下:fitXY:对图片横向、纵向独立缩放。fitStart:保持纵横比缩放,图片放在ImageView左上角。fitCenter:保持纵横比缩放,图片放在ImageView中央。fitEnd:保持纵横比缩放,图片放在ImageView右下角。center:把图片放在ImageView中间,不进行任何缩放。centerCrop:保持纵横比缩放,图片完全覆盖ImageView。centerInside:保持纵横比缩放,ImageView能完全显示该图片。,布局管理器,布局管理器,Android布局管理器本身就是一个UI组件。所有的布局管理器都是继承自ViewGroup类。布局管理器可以相互嵌套。常用的布局管理器:LinearLayoutTableLayoutFrameLayoutRelativeLayoutAbsoluteLayout,布局管理器,线性布局(LinearLayout),容器内的控件一个挨着一个排列。重要属性:android:orientation设置容器内控件排列方式,水平排列或者垂直排列。android:gravity设置容器内的组件的对齐方式,组件相对于容器的位置。,表格布局(TableLayout),表格布局采用行、列的形式来管理UI组件。TableRow表示每一行,TableRow中的每一个组件代表一列。重要属性:android:collapseColumns设置被隐藏的列android:shrinkColumns设置允许收缩的列android:stretchColumns设置允许拉伸的列,帧布局FrameLayout,帧布局容器为每个加入其中的组件创建一个空白区域(称为一帧)。如果没有设置对齐方式,容器中的组件会重叠在一起。重要属性:android:foreground设置该帧布局容器的前景图android:foregroundGravity设置帧布局前景图的位置,相对布局RelativeLayout,相对布局容器内子组件的位置总是相对于其他组件和父容器决定。控制组件位置的属性android:layout_centerHorizontal控制组件是否在容器中水平局中android:layout_centerVertical控制组件是否在容器中垂直局中,绝对布局AbsoluteLayout,绝对布局中,系统不提供任何布局控制,开发人员通过X坐标,Y坐标来控制组件的位置。Android手机屏幕的尺寸和分辨率差别很大,使用绝对布局很难适应不同的屏幕分辨率。,Android中的长度单位,px(像素):每个像素对应屏幕上的一个点。dip或dp(设备独立像素):基于屏幕密度的抽象单位。sp(比例像素):主要处理字体大小,可对字体进行缩放。其他:in(英寸)、mm(毫米)、pt(磅),高级界面组件,自动完成文本框(AutoCompleteTextView),自动完成文本框继承自EditText。具有自动提示功能。常用属性:android:completionHint出现在下拉菜单中的提示标题android:completionThreshold至少输入几个字符才会显示提示,自动完成文本框(AutoCompleteTextView),android:dropDownHeight设置下拉菜单的高度android:dropDownWidth设置下拉菜单的宽度android:popupBackground设置下拉菜单的背景android:dropDownHorizontalOffset设置下拉菜单与文本框之间的水平偏移android:dropDownVerticalOffset设置下拉菜单与文本框之间的垂直偏移,自动完成文本框(AutoCompleteTextView),用适配器为自动完成文本框添加数据/创建一个ArrayAdapter适配器,封装数组ArrayAdaptermyAdapter=newArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,books);AutoCompleteTextViewactv=(AutoCompleteTextView)findViewById(R.id.auto);/设置Adapteractv.setAdapter(myAdapter);,下拉列表(Spinner),用户点击Spinner,会弹出一个下拉列表式的选择框。常用属性:android:prompt设置选择框的标题。android:entries使用数组资源设置下拉列表的列表项目。,下拉列表(Spinner),使用适配器为Spinner添加选择框的数据Spinnerspinner1=(Spinner)findViewById(R.id.Spinner01);ArrayAdapteradapter=ArrayAdapter.createFromResource(this,R.array.colors,android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner1.setAdapter(adapter);,日期选择器(DatePicker),DatePicker主要供用户选择日期。可以为DatePicker添加OnDateChangedListener监听。,时间选择器(TimePicker),TimePicker主要供用户选择时间。如果程序需要获取用户选择的时间,可以为TimePicker添加OnTimerChangedListener监听来实现。,进度条(ProgressBar),ProgressBar的主要作用是向用户显示某个比较耗时的操作的进度。常用属性:android:max设置进度条的最大值android:progress设置进度条已完成的进度,进度条(ProgressBar),style进度条的样式,属性值:android:style/Widget.ProgressBar.Horizontal水平进度条android:style/Widget.ProgressBar.Inverse旋转的进度条android:style/Widget.ProgressBar.Large大进度条android:style/Widget.ProgressBar.Small小进度条常用方法:setProgress(int):设置进度完成的百分比incrementProgressBy(int):设置进度增加或减少,拖动条(SeekBar),SeekBar允许用户拖动滑块来改变值,如调节音量等。常用属性:android:max设置拖动条的最大值。android:progress设置拖动条当前进度。android:thumb指定一个图片当作拖动条的滑块。,拖动条(SeekBar),为SeekBar添加OnSeekBarChangeListener监听器:seekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()/当拖动条的滑块位置发生改变时触发该方法OverridepublicvoidonProgressChanged(SeekBararg0,intprogress,booleanfromUser)/处理事件OverridepublicvoidonStartTrackingTouch(SeekBarbar)OverridepublicvoidonStopTrackingTouch(SeekBarbar);,星级评分条(RatingBar),RatingBar的主要用来评分。常用属性:android:numStars设置评分条有多少个星级。android:rating设置评分条默认的星级。android:stepSize设置每次需要改变多少星级。,星级评分条(RatingBar),android:isIndicator设置星级评分条是否允许用户改变。为RatingBar绑定OnRatingBarChangeListener监听器,即可监听星级的改变。,选项卡(TabHost),TabHost可以在窗口上放置多个标签,方便切换。TabHost仅仅是一个简单的容器,它提供了如下两个方法来创建选项卡、添加选项卡:newTabSpec(Stringtag):创建选项卡addTab(TabHost.TabSpectabSpec):添加选项卡,选项卡(TabHost),使用TabHost的一般步骤:在界面布局中定义TabHost组件。Activity应继承自TabActivity。调用TabActivity的getTabHost()方法获取TabHost对象。通过TabHost对象的方法来创建选项卡、添加选项卡。,滚动视图(ScrollView),ScrollView的作用是为其他组件添加滚动条。ScrollView里最多只能包含一个组件。ScrollView只能添加垂直滚动条,如果要添加水平滚动条,则需要HorizontalScrollView。,列表视图(ListView),ListView以垂直列表的形式显示所有的列表项。常用属性:android:divider设置List列表的分割条(颜色或图片)。android:dividerHeight设置分割条的高度。android:entries指定要显示的数组资源。,列表视图(ListView),使用适配器为ListView添加数据:ListViewlist1=(ListView)findViewById(R.id.list2);/定义一个数组Stringarr=“列表视图,列表视图,列表视图;/将数组包装ArrayAdapterArrayAdapterarrayAdapter=newArrayAdapter(this,android.R.layout.simple_list_item_1,arr);/为ListView设置Adapterlist1.setAdapter(arrayAdapter);,可展开列表组件(ExpandableListView),ExpandableListView继承自ListView,它可以把列表分组,每组里又可以包含多个列表。常用属性:android:childDivider指定各组内子列表之间的分割条。android:groupIndicator指定组列表旁边的图像。,可展开列表组件(ExpandableListView),android:childIndicator指定子列表旁边的图像。创建BaseExpandableListAdapter对象为列表添加数据。,网格视图(GridView),GridView用于在界面上按行、列分布的方式显示多个组件。常用属性:android:columnWidth设置列的宽度。android:numColumns设置列数,网格视图(GridView),android:stretchMode设置拉伸模式。android:horizontalSpacing设置各元素之间的水平间距。android:verticalSpacing设置各元素之间的垂直间距。,画廊视图(Gallery),Gallery允许用户通过拖动来查看上一个、下一个列表项。常用属性:android:animationDuration设置列表项切换时动画持续的时间。android:spacing设置列表项之间的距离,画廊视图(Gallery),android:unselectedAlpha设置没有选中的列表项的透明度。Gallery使用Adapter提供数据。如果要监听Gallery选择项的改变,只要为Gallery添加OnItemSelectedListener即可。,对话框,使用AlertDialog创建对话框,Android提供了丰富的对话框支持。通过AlertDialog可以创建基本的对话框。常用方法:setIcon(Drawableicon):设置对话框的图标。setTitle(Stringtitle):设置对话框的标题。,使用AlertDialog创建对话框,setMessage(Stringmessage):设置对话框的内容。使用AlertDialog创建对话框的一般步骤:创建AlertDialog.Builder对象。调用AlertDialog.Builder的方法为对话框设置图标、标题、内容等。调用AlertDialog.Builder的create()方法创建AlertDialog对话框。调用AlertDialog.Builder的show()方法显示对话框。,使用AlertDialog创建对话框,AlertDialog除了可以创建简单的对话框,还可以创建如下复杂对话框:带列表、按钮的列表对话框。带多个单选列表项的对话框。带多个多选列表项的对话框。自定义界面的对话框。,PopupWindow,PopupWindow用于创建类似于对话框风格的窗口。使用PopupWindow创建对话框风格的窗口需要两步:调用PopupWindow构造器创建PopupWindow对象。调用PopupWindow的showAsDropDown(Viewv)或showAtLocation显示PopupWindow。,日期选择对话框(DatePickerDialog),日期选择对话框只是将日期选择组件包装为对话框的形式。通过new关键字创建DatePickerDialog实例,调用它的show()方法即可显示。为DatePickerDialog绑定监听器。,时间选择对话框(TimePickerDialog),时间选择对话框的使用方法和日期选择对话框的使用方法和基本相同。,进度对话框(ProgressDialog),进度条对话框是以对话框的方式显示进度。常用方法:setMax(intmax):设置对话框进度条的最大值。setMessage(CharSequencemessage):设置对话框里显示的消息。,进度对话框(ProgressDialog),setProgress(intvalue):设置对话框里进度条的最大值。setProgressStyle(intStyle):设置对话框里进度条的风格。setIndeterminate(bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 先进泵站安全制度培训课件
- 创文标准培训课件
- 第14课 唐诗五首 野望 公开课一等奖创新教学设计-【课堂无忧】新课标同步核心素养课堂
- 《搭船的鸟》 说课稿
- 【大单元】二上第七单元 20《雾在哪里》 +公开课一等奖创新教学设计
- “环境描写”写作技巧48招法(讲义)
- 内河水运船员安全培训课件
- 聚合物药物递送系统-洞察及研究
- 兄弟连益智器具课件
- 化压力为动力课件
- 《会计基础工作规范》课件
- 公证与婚姻家庭事务
- 产业园区运营模式(课件)
- 自动化设备机械加工件来料检验标准
- 水管风管沿程阻力计算书+局部阻力软件
- 软件工程导论课件(第六版)(张海潘编著)(1-13章)
- 全成本管理探索与实践
- 电烙铁焊接技术培训
- GB/T 40529-2021船舶与海洋技术起货绞车
- GA 392-2009警服雨衣
- 商务礼仪情景剧剧本范文(通用5篇)
评论
0/150
提交评论