《华联学院《android软件开发》课件03软件开发也要拼脸蛋—UI开发的点点滴滴》由会员分享,可在线阅读,更多相关《华联学院《android软件开发》课件03软件开发也要拼脸蛋—UI开发的点点滴滴(49页珍藏版)》请在金锄头文库上搜索。
1、第三章软件开发也要拼脸蛋UI开发的点点滴滴Android软件开发主讲:王海本章目标了解Android中的UI元素能够使用布局管理器对界面进行管理掌握界面交互事件处理机制及实现步骤能够熟练使用常用的Widget简单组件掌握Dialog对话框的使用Android软件开发主讲:王海Android UI元素Android中界面元素:视图:所有可视界面元素(通常称为控件或小组件)的基类视图容器:视图类的扩展,其中包含多个子视图布局管理:管理组件的布局格式,组织界面中组件的呈现方式Activity:用于为用户呈现窗口或屏幕Fragment:针对不同屏幕尺寸时,优化UI布局以及创建可重用的UI元素Andro
2、id软件开发主讲:王海视图类名功能描述TextView文本视图EditText编辑文本框Button按钮Checkbox复选框RadioGroup单选按钮组Spinner下拉列表AutoCompleteTextView自动完成文本框DataPicker日期选择器TimePicker时间选择器DigitalClock数字时钟AnalogClock模拟时钟ProgessBar进度条RatingBar评分条SeekBar搜索条GridView网格视图LsitView列表视图ScrollView滚动视图 View的常见子类Android软件开发主讲:王海视图容器 ViewGroup类通常作为其他组件的
3、容器使用ViewGroupViewGroupViewViewViewViewViewAndroid软件开发主讲:王海类名功能描述ViewGroup()构造方法void addView(View child) 用于添加子视图,以View作为参数,将该View增加到视图组中removeView(View view)将指定的View从视图组中移除updateViewLayout(View view, ViewGroup.LayoutParamsparams)用于更新某个View的布局void bringChildToFront(View child)将参数所指定的视图移动到所有视图之前显示boole
4、an clearChildFocus(View child)清除参数所指定的视图的焦点boolean dispatchKeyEvent(KeyEvent event)将参数所指定的键盘事件分发给当前焦点路径的视图。boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event)将参数所指定的事件分发给当前焦点路径的视图boolean dispatchSetSelected(boolean selected) 为所有的子视图调用setSelected()方法ViewGroupViewViewViewGroupViewGrou
5、pViewGroupViewGroup类提供的主要方法Android软件开发主讲:王海ViewGroup继承结构ViewGroup的继承者大部分位于android.widget包中。ViewViewGroupAdapterViewAbsoluteLayoutFrameLayoutLinearLayoutRelativeLayoutFragmentBreadCrumbsAbsListViewAbsSpinnerScrollViewTabhostTabelLayoutTabelRowGridViewListViewGallerySpinnerRadioGroupAndroid软件开发主讲:王海布局
6、参数类在Android布局文件中,每个组件所能使用的XML属性有三类:组件本身的XML属性;组件祖先类的XML属性;组件所属容器的布局参数。ViewGroup容器使用两个内部类来控制子组件在其中的分布位置:ViewGroup.LayoutParamsViewGroup.MarginLayoutParamsXML属性功能描述android:layout_width设定该组件的子组件布局的宽度android:layout_height设定该组件的子组件布局的高度Android软件开发主讲:王海LayoutParamsLinearLayoutLinearLayout.LayoutParamsXMLV
7、iewGroup.LayoutParamsXMLXML属性属性功能描述功能描述android:layout_marginTop指定该子组件上面的页边距android:layout_marginRight 指定该子组件右面的页边距android:layout_marginBottom指定该子组件下面的页边距android:layout_marginLeft指定该子组件左面的页边距 ViewGroup.MarginLayoutParams用于控制子组件周围的页边距Android软件开发主讲:王海布局管理布局管理器可以根据运行平台来调整组件的大小所有的布局管理器都是ViewGroup的子类ViewA
8、bsoluteLayoutViewGroupGridViewRelativeLayoutLinearLayoutTableLayoutFrameLayoutAndroid软件开发主讲:王海Android常用布局LinearLayout线性布局:该布局中子元素之间成线性排列RelativeLayout相对布局:该布局中子元素之间根据相对位置排列TableLayout表格布局:该布局中子元素的位置分配到表格的行或列中AbsoluteLayout绝对布局:该布局中子元素按照绝对坐标进行排列Android软件开发主讲:王海Fragment Fragment允许将Activity拆分成多个完全独立的可重
9、用的组件 每个Fragment都是一个独立的模块 与绑定的Activity紧密的联系在一起 一个Fragment可以被多个Activity所共用Android软件开发主讲:王海界面布局Android中提供了两种创建布局的方式: 在XML布局文件中声明 在程序中直接实例化布局及其组件Android软件开发主讲:王海线性布局 LinearLayout是线性布局,布局中的组件按照垂直或者水平方向进行排列 LinearLayout中子元素的位置都受LinearLayout.LayoutParams控制XML属性属性对应方法对应方法功能描述功能描述android:dividersetDividerDra
10、wable()设置垂直布局时两个按钮之间的分隔条android:gravitysetGravity()设置布局管理器内组件的对齐方式android:orientationsetOrientation()设置布局管理器内组件的排列方式XML属性属性功能描述功能描述android:layout_gravity指定子元素在LinearLayout中的对齐方式android:layout_weight指定子元素在LinearLayout中所占的比重Android软件开发主讲:王海表格布局 TableLayout类似表格形式,以行和列的方式来布局子组件 在TableLayout中,可以通过以下3种方式对
11、单元格进行设置:ShrinkableStretchableCollapsedXML属性属性对应方法对应方法功能描述功能描述android:shrinkColumnssetShrinkAllColumns(boolean)设置可收缩的列android:stretchColumnssetStretchAllColumns(boolean)设置可伸展的列android:collapseColumnssetColumnCollapsed(int,boolean)设置要隐藏的列Android软件开发主讲:王海全局属性的设置stretchColumnsshrinkColumns012Android软件开发
12、主讲:王海 使用TableRow.LayoutParams对TableRow的子元素进行修饰 对表格属性进行设置XML属性属性功能描述功能描述android:layout_columnandroid:layout_span121Android软件开发主讲:王海相对布局 在相对布局容器中子组件的位置总是相对于兄弟组件或父容器XML属性功能描述android:layout_alignParentLeft指定该组件是否与布局容器左对齐android:layout_alignParentTop指定该组件是否与布局容器顶端对齐android:layout_alignParentRight指定该组件是否与
13、布局容器右对齐android:layout_alignParentBottom指定该组件是否与布局容器底端对齐android:layout_centerInParent指定该组件是否位于布局容器的中央位置android:layout_centerHorizontal指定该组件是否位于布局容器的水平居中android:layout_centerVertical指定该组件是否位于布局容器的垂直居中Android软件开发主讲:王海XML属性功能描述android:layout_toLeftOf控制该组件位于指定ID组件的左侧android:layout_toRightOf控制该组件位于指定ID组件的
14、右侧android:layout_above控制该组件位于指定ID组件的上方android:layout_below控制该组件位于指定ID组件的下方android:layout_alignLeft控制该组件与指定ID组件的左边界进行对齐android:layout_alignTop控制该组件与指定ID组件的上边界进行对齐android:layout_alignRight控制该组件与指定ID组件的右边界进行对齐相对布局Android软件开发主讲:王海绝对布局 AbsoluteLayout通过指定组件的确切X、Y坐标来确定组件的位置Android软件开发主讲:王海事件处理Android系统中引用了
15、三个事件模型: 事件 事件源 事件监听器图形界面图形界面 事件处理方法事件处理方法事件事件n 事件事件1监听器监听器n 监听器监听器1注注册册监监听听捕获捕获调用调用用户用户操作操作产生产生Android软件开发主讲:王海Android中的事件监听器事件监听器接口事 件功能描述OnClickListener单击事件当用户点击某个组件或者方向键触发该事件OnFocusChangeListener焦点事件当组件获得或者失去焦点时触发该事件OnKeyListener按键事件当用户按下或者释放设备上的某个按键触发该事件OnTouchListener触摸事件当触碰屏幕时触发该事件OnCreateCont
16、extMenuListener创建上下文菜单事件当创建上下文菜单时触发该事件OnCheckedChangeListener选项改变事件当选择改变时触发该事件Android软件开发主讲:王海实现事件监听器有以下四种形式: Activity本身作为事件监听器:通过Activity实现监听器接口,并实现事件处理方法 匿名内部类形式:使用匿名内部类创建事件监听器对象 内部类或外部类形式:将事件监听类定义为当前类的内部类或普通的外部类 绑定标签:在布局文件中为指定标签绑定事件处理方法Android中的事件监听器Android软件开发主讲:王海实现基于监听的事件处理有三步:实现基于监听的事件处理步骤在事件处理方法中编写事件处理代码在相应的组件上注册监听器Android中的事件监听器Android软件开发主讲:王海Activity本身作为事件监听器 通过Activity实现监听器接口,并实现该接口中对应的事件处理方法 基于监听的事件的处理模型的编程步骤: 获取所要触发事件的事件源控件 实现事件监听器类 调用事件源的setXxxListener()方法,将事件监听器注册给事件源对象Android软件开