《Android应用开发技术》全套教学课件_第1页
《Android应用开发技术》全套教学课件_第2页
《Android应用开发技术》全套教学课件_第3页
《Android应用开发技术》全套教学课件_第4页
《Android应用开发技术》全套教学课件_第5页
已阅读5页,还剩373页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android简介与应用开发环境搭建第1章Android简介与应用开发环境搭建第2章Android布局管理器第3章Android常用控件第4章Activity与Intent第5章Android高级控件第6章Android数据存储与处理第7章ContentProvider第8章Service与IntentService第9章BroadcastReceiver第10章网络编程全套可编辑PPT课件前言Android是一款基于Linux内核的开源操作系统,专门为移动设备设计,旨在为手机、平板计算机和其他智能移动设备提供一个灵活、可定制与易于使用的平台。能让开发者在不同类型的智能设备(如手机、平板计算机、智能手表、智能电视)之上构建丰富多彩的应用程序。03第一个Android项目开发04资源的管理和引用目录01Android简介02Android应用开发环境搭建

1.1Android简介

1.1.1Android的由来Android这个词语最先出现在法国作家维里利尔·亚当于1886年发表的科幻小说《未来的夏娃》中,作者把外表像人类的机器起名为Android。2008年,全球第一款基于Android的手机T-MobileG1由HTC制造生产,标志着Android进入了消费者市场。

1.1Android简介

1.1.2Android的发展历程自从第一款Android手机诞生以来,每个版本都按照字母表的顺序,以甜品名称命名。

1.1Android简介

1.1.3Android的应用领域1.Android智能手机应用(1)移动通信:Android是智能手机操作系统,支持通话、短信、多媒体消息等通信功能。(2)社交媒体:Android上有各种社交媒体应用程序,如微信、QQ等。(3)娱乐和媒体:Android提供了广泛的娱乐和媒体应用程序,包括音乐播放器、视频流媒体服务(如优酷、腾讯视频)、游戏等。(4)生产与工作:Android上有许多生产力工具,如日历、电子邮件、办公套件(如MicrosoftOffice和GoogleDocs)等,可以帮助用户进行工作和管理任务。

1.1Android简介

1.1.3Android的应用领域1.Android智能手机应用(5)教育和学习:Android提供了许多教育和学习工具,包括在线课程平台、电子书阅读器、语言学习应用等,可以帮助用户扩展知识和提升技能。(6)健康和健身:Android提供了如计步器、健身跟踪器等各种健康和健身应用程序。(7)旅游和导航:Android提供了导航、地图和旅游指南等工具。(8)银行和金融:用户可以进行在线银行交易、管理账户和支付账单。(9)零售和电子商务:用户可以在线购物、浏览商品和进行支付。

1.1Android简介

1.1.3Android的应用领域2.其他智能设备平板计算机、智能手表和智能穿戴设备、汽车娱乐系统、智能电视和机顶盒、智能家居设备、智能摄像头、游戏机和游戏控制器等。还有许多其他类型的硬件设备,如智能家电、无人机、AR/VR设备等,也可以使用Android。由于Android的开源性和灵活性,因此开发者可以根据需要将Android适配到各种硬件设备上。

1.1Android简介

1.1.4Android的体系结构应用程序层应用框架层系统运行库层系统运行库、Android运行时库Linux内核层4层体系结构

1.1Android简介

1.1.4Android的体系结构1.应用程序层是Android的体系结构的顶层,也是与用户直接交互的部分。这些应用程序包括Android内置应用程序(如电话、短信、浏览器等)和第三方应用程序(如微信、微博、QQ等)。是基于Java技术构建的。2.应用框架层为开发者提供了构建应用程序所需的各种框架、API、类库和工具。它包含许多关键组件,如活动管理器(ActivityManager)、窗口管理器(WindowManager)、视图系统(ViewSystem)等。是基于Java技术构建的。

1.1Android简介

1.1.4Android的体系结构1.系统运行库层即系统运行库(Libraries)和Android运行时库(AndroidRuntime)。(1)系统运行库:包括一系列的C/C++库,提供了许多核心功能,如图形渲染、数据库支持、媒体播放和网络通信等。 (2)Android运行时库:包括Dalvik虚拟机和底层的Java类库。2.Linux内核层Linux内核层被作为底部的硬件抽象层。Linux内核层提供了设备驱动、内存管理、进程管理和网络等核心服务。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio访问Android开发者官网,下载AndroidStudio安装包,本课程以“AndroidStudioFlamingo2022.2.1补丁1”安装包为例。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(1)下载完成后,运行AndroidStudio安装包,即“android-studio-200-windows.exe”,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(2)分别勾选“AndroidStudio”及“AndroidVirtualDevice”复选框,点击“Next”按钮,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(3)开发环境大概需要3~4GB的磁盘空间,选择空间充足的位置,点击“Next”按钮,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(4)安装完成后,勾选“StartAndroidStudio”复选框,点击“Finish”按钮,首次启动AndroidStudio,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(5)首次启动AndroidStudio后,若没有安装SDK(软件开发工具包)时,会弹出SDK安装向导提示对话框,点击“Cancel”,并点击“Next”按钮,进入SDK安装向导,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(6)选中“Custom”单选按钮,点击“Next”按钮,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(7)选择JDK安装路径,点击“Next”按钮,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(8)选择SDK版本及安装路径,点击“Next”按钮,如图所示。

1.2Android应用开发环境的搭建

1.2.1安装AndroidStudio(9)选中“Accept”单选按钮,点击“Finish”按钮,开始安装SDK,如图所示。

1.2Android应用开发环境的搭建

1.2.2创建模拟器在Android应用开发过程中经常需要实时运行应用程序,测试它的外观和功能是否符合预期。可以使用真实的手机或模拟器进行测试。模拟器官方称为Android虚拟设备(AndroidVirtualDevice,AVD),是一种专门为Android应用开发提供模拟运行环境和界面的虚拟机软件。可选择“Tools”→“DeviceManager”命令,查看当前环境配置好的模拟器。

1.2Android应用开发环境的搭建

1.2.2创建模拟器创建模拟器的具体步骤:(1)在“SelectHardware”界面中选择需要创建的模拟器类型和硬件参数,如图所示。

1.2Android应用开发环境的搭建

1.2.2创建模拟器(2)在“SystemImage”界面中选择模拟器需要安装的操作系统镜像版本,如图所示。

1.2Android应用开发环境的搭建

1.2.3升级管理SDK选择“Tools”→“SDKManager”命令,打开设备管理器,选择需要安装的SDK版本,也可以取消选择需要删除的SDK版本,即可完成SDK的升级管理,如图所示。

1.2Android应用开发环境的搭建

1.2.3升级管理SDK设备管理器中除了可以通过“SDKPlatforms”选项卡升级SDK平台,还可以通过“SDKTools”选项卡升级SDK,如图所示。

1.3第一个Android项目的开发

1.创建并运行Android项目(1)启动AndroidStudio,选择“NewProject”选项,进入新建项目向导。(2)选择“EmptyViewsActivity”选项,点击“Next”按钮,如图所示。

1.3第一个Android项目的开发

1.创建并运行Android项目(3)在弹出的界面中设置项目基本信息,点击“Finish”按钮,如图所示。注意:该过程至少要完成项目名称、项目的主包名、项目保存路径、开发语言(这里选择Java)和最低支持的SDK版本的设置。

1.3第一个Android项目的开发

1.创建并运行Android项目(4)首次创建项目时,需要等待较长的时间下载并导入Gradle,如“BackgroundTasks”对话框所示。

1.3第一个Android项目的开发

1.创建并运行Android项目(5)项目创建完成之后,点击“运行”按钮,即可在模拟器上运行刚刚创建的项目,如图所示。

1.3第一个Android项目的开发

2.Android项目的基本结构每个Android项目由若干个特定的目录和文件组成。(1)app目录:主目录,包含应用清单、应用的源代码目录和资源目录。①AndroidManifest.xml文件:应用的清单文件,包含应用的各种配置信息,如权限、活动声明等。②java目录:源代码目录,编写应用功能的源代码存放的位置。该目录下以Java包名作为子目录,每个Java类应该被放在适当的包目录下。

1.3第一个Android项目的开发

2.Android项目的基本结构③res目录:资源目录,包含应用的各种资源文件,如布局文件、图片文件等。drawable目录:图片目录,存放应用的图片文件。layout目录:布局目录,存放应用的布局文件,用于定义界面的布局外观。mipmap目录:图标目录,用于存放应用的图标文件。values目录:常量目录,存放定义常量、样式和字符串的XML文件。(2)GradleScripts目录:包含使用Gradle构建系统的各种配置文件。

1.3第一个Android项目的开发

3.使用Logcat输出日志Logcat是Android应用开发中非常重要的日志管理工具,可以帮助开发者实时了解应用的运行状态。可以通过Logcat输出不同级别的日志,这些日志对于调试代码和定位异常错误非常有帮助。在运行应用时,可以通过设置过滤条件选择只显示相关的日志,避免日志过于冗余。常用的使用Logcat输出日志的级别有5个,优先级从低到高分别是:Verbose(详情)、Debug(调试)、Info(信息)、Warn(警告)和Error(错误),对应的日志输出方法分别是:Log.v()、Log.d()、Log.i()、Log.w()和Log.e()。

1.3第一个Android项目的开发

3.使用Logcat输出日志(1)日志的输出在创建好的Android项目中找到MainActivity,在该类的onCreate()方法中添加输出日志的程序代码。

1.3第一个Android项目的开发

3.使用Logcat输出日志(1)日志的输出重新运行程序后,通过Logcat,可以查看输出的日志,如图所示。

1.3第一个Android项目的开发

3.使用Logcat输出日志(2)日志的过滤可以在Logcat的过滤输入框中添加筛选条件“tag:LogcatTag”,代表只显示日志标签等于“LogcatTag”的日志。也可以通过日志的级别过滤日志,“level:debug&tag:LogcatTag”代表显示Debug以上级别的日志。

1.4资源的管理和引用

1.4.1资源的种类Android项目的资源统一被存储在res目录中。按资源文件的种类不同,其又分别被存储在res目录的不同子目录中。(1)图片资源:被存储在drawable目录中,存放图片文件,包括位图和矢量图。(2)布局资源:被存储在layout目录中,存放应用的布局文件,用于定义界面的布局外观。(3)常量资源:被存储在values目录中,包含定义常量、样式和字符串的XML文件,用于定义不同类型的值,如字符串、颜色、尺寸和样式。

1.4资源的管理和引用

1.4.1资源的种类(4)图标资源:被存储在mipmap目录中,存放应用的图标资源文件。(5)动画资源:被存储在anim目录中,存放应用的动画效果文件。(6)菜单资源:被存储在menu目录中,用于定义应用的菜单布局。(7)原始资源:被存储在raw目录中,存放原始文件,如音频或视频文件。(8)其他XML资源:被存储在xml目录中,存放其他类型的XML文件。

1.4资源的管理和引用

1.4.2管理和引用资源的方法1.图片资源(1)图片资源的管理图片资源可以是jpg、png、gif、bmp等格式的常见位图或矢量图文件,可以作为静态资源被引用。根据图片的用途,分为应用图标资源和界面图片资源。用作应用图标资源的文件被存储在mipmap目录中,用作界面图片资源的文件则被存储在drawable目录中。

1.4资源的管理和引用

1.4.2管理和引用资源的方法1.图片资源(1)图片资源的管理Android设备不同,其屏幕像素密度(分辨率)各不相同,为了让不同屏幕像素密度的设备都能清晰地显示图片资源,Android在mipmap目录和drawable目录中划分出不同屏幕像素密度的子目录。规则如下表所示。屏幕像素密度mipmap中目录子目录drawable中目录子目录120~160dpimipmap_mdpidrawable_mdpi160~240dpimipmap_hdpidrawable_hdpi240~320dpimipmap_xdpidrawable_xdpi320~480dpimipmap_xxdpidrawable_xxdpi480~640dpimipmap_xxxdpidrawable_xxxdpi

1.4资源的管理和引用

1.4.2管理和引用资源的方法1.图片资源(2)图片资源的引用保存好的图片资源,可以直接在程序中引用。要在程序中引用图片资源可以通过资源名来实现。如果资源名为my_image,可以使用@drawable/my_image来引用图片资源,在Java代码中则可以使用R.drawable.my_image来引用图片资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法1.图片资源(2)图片资源的引用以下是在XML文件中引用图片资源。以下是在Java代码中引用图片资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法2.布局资源(1)布局资源的管理布局资源用于定义应用用户界面结构。以下是管理布局资源的基本方法。创建布局文件。在Android项目的layout目录中创建一个新布局文件,将其命名为my_layout.xml。编辑布局文件。使用XML编辑布局文件,描述界面中的视图控件和其他元素。可以使用各种布局容器(如LinearLayout、ConstraintLayout等)和视图组件(如TextView、Button、ImageView等)来构建界面。

1.4资源的管理和引用

1.4.2管理和引用资源的方法2.布局资源(2)布局资源的引用要在程序中引用布局资源可以通过资源名来实现。如果资源名为my_layout,在XML文件中可以使用@layout/my_layout来引用布局资源,在Java代码中则可以使用R.layout.my_layout来引用布局资源。以下是在XML文件中引用布局资源。以下是在Java代码中引用布局资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法3.字符串资源(1)字符串资源的管理把程序中显示给用户的文本保存到字符串资源中,可以使程序的文本易于维护和国际化。所谓国际化,简单地理解就是只做一套程序,在不同的地区和文化背景下使用不同的资源文件显示不同的语言文字。管理字符串资源的基本方法如下:创建字符串文件。在Android项目的values目录中创建一个新字符串文件,将其命名为strings.xml(可以自定义)。

1.4资源的管理和引用

1.4.2管理和引用资源的方法3.字符串资源(1)字符串资源的管理编辑字符串文件。打开strings.xml文件,使用<string>元素定义字符串资源。每个字符串资源都需要一个唯一的名称(即标识符),并且包含一个相应的值。

1.4资源的管理和引用

1.4.2管理和引用资源的方法3.字符串资源(2)字符串资源的引用要在程序中引用字符串资源可以通过资源名来实现。如果资源名为welcome_message,那么在XML文件中可以使用@string/welcome_message来引用字符串资源,在Java代码中则可以使用R.string.welcome_message来引用字符串资源。以下是在XML文件中引用字符串资源。以下是在Java代码中引用字符串资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法4.颜色资源(1)颜色资源的管理由于同一个程序的多个界面往往有统一的配色方案,因此有必要进行颜色资源的管理。管理颜色资源的基本方法如下:创建颜色文件。在Android项目的values目录中创建一个新颜色文件,将其命名为colors.xml(可以自定义)。这个文件用于存放应用中使用的颜色资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法4.颜色资源(1)颜色资源的管理编辑颜色文件。打开colors.xml文件,使用<color>元素定义颜色资源。每个颜色资源都需要一个唯一的名称(即标识符),并且包含一个相应的值。值可以使用十六进制形式表示,如#RRGGBB(RGB颜色)或#AARRGGBB(带透明度的RGB颜色)。例如:

1.4资源的管理和引用

1.4.2管理和引用资源的方法4.颜色资源(2)颜色资源的引用要在程序中引用颜色资源可通过资源名来实现。如资源名为primary_color,那么在XML文件中可以使用@color/primary_color来引用颜色资源,而在Java代码中则可以使用R.color.primary_color来引用颜色资源。以下是在XML文件中引用颜色资源。以下是在Java代码中引用颜色资源。

1.4资源的管理和引用

1.4.2管理和引用资源的方法5.样式资源(1)样式资源的管理在Android应用开发中,为相同功能的一组视图控件定制相同的界面外观属性,可以把外观属性定义成样式资源。管理样式资源的基本方法如下:创建样式文件。在Android项目的values目录中创建一个新样式文件,将其命名为styles.xml(可以自定义)。

1.4资源的管理和引用

1.4.2管理和引用资源的方法5.样式资源(1)样式资源的管理编辑样式文件。打开styles.xml文件,使用<style>元素定义样式资源。每个样式资源都需要一个唯一的名称(即标识符),并且包含一系列的样式属性。以下示例定义了两个样式资源,即AppTheme和ButtonStyle。

1.4资源的管理和引用

1.4.2管理和引用资源的方法5.样式资源(2)样式资源的引用要在程序中引用样式资源可以通过资源名来实现。如果资源名为ButtonStyle。在XML文件中可以使用@style/ButtonStyle来引用样式资源。以下是在XML文件中引用样式资源。本章小结Android的由来Android的发展历程Android的应用领域Android的体系结构Android应用开发环境的搭建第一个Android项目的开发Android项目中的各种资源的管理和引用。Android

布局管理器前言布局管理器是一种用于管理界面布局的技术。使用布局管理器可以使界面设计更加灵活和可扩展,能够适应不同设备的屏幕尺寸和分辨率。02布局管理器目录01布局概述

2.1布局概述

在Android程序中界面是通过布局文件XML设定的,使用XML文件声明界面布局是将程序的表现层和控制层分离的一种方式,这使程序的结构更加清晰,更便于维护和修改。在每个应用程序创建时会默认包含一个主界面布局,该布局位于res/layout目录中。实际开发中每个应用程序都包含多个界面,而程序默认提供的一个主界面布局无法满足需求,因此经常会在程序中添加多个布局。

2.1布局概述

2.1.1View和ViewGroup布局管理器中的View和ViewGroup是AndroidUI设计的基础组件。1.View(1)View是AndroidUI设计的所有基础组件的基类。(2)View提供了视图的基本功能,包括绘制、事件处理等。

2.1布局概述

2.1.1View和ViewGroup布局管理器中的View和ViewGroup是AndroidUI设计的基础组件。1.View(3)View具有一些基本属性,如宽度、高度、位置、背景等。主要处理自己绘制的内容,以及处理用户输入事件(如触摸等)。

2.1

布局概述

2.1.1View和ViewGroup示例:端砚研墨。左图为端砚研墨的程序运行效果,右图为让端砚研墨动起来的程序运行效果。

2.1布局概述

2.1.1View和ViewGroup2.ViewGroup(1)ViewGroup是View的子类,是一种特殊的View,主要用来充当View的容器,可以包含和管理多个子View和子ViewGroup。(2)ViewGroup本身也是一个视图,因此它可以被添加到布局中。与View相比,ViewGroup更注重组织和管理子视图。(3)ViewGroup提供了一些额外的功能,如布局参数的传递、焦点的管理、测量等。

2.1布局概述

2.1.1View和ViewGroup3.ViewGroup和View的关系(1)ViewGroup可以包含多个View,而View也可以是ViewGroup的子View。(2)在布局过程中,先由根节点(通常是RelativeLayout或LinearLayout)创建一个ViewGroup,然后将这个ViewGroup作为根节点添加到布局中,最后向这个ViewGroup中添加各种View或者其他ViewGroup(也就是子ViewGroup)。

2.1

布局概述

2.1.1View和ViewGroup示例:展示岭南文化中端砚该示例展示了如何使用RelativeLayout来组织以岭南文化端砚为主题的界面,用户可以根据实际需求进行调整和扩展。

2.1布局概述

2.1.2布局规范在Android应用开发中,布局管理器用于组织和控制应用的用户界面元素。为了实现一致和可预测的界面效果,建议遵循以下布局规范。1.避免复杂的嵌套布局。嵌套过多的布局管理器会产生性能问题,因此建议尽量使用简单的布局结构。在必要时,可以通过组合布局来替代复杂的嵌套布局。

2.1布局概述

2.1.2布局规范2.尽量使用RelativeLayout。使用RelativeLayout相对布局可以根据其他的位置来定位自身或其他组件,这使得界面布局更加灵活。然而,由于在大型项目中使用RelativeLayout可能会导致复杂的布局结构,因此用户需要根据实际情况进行权衡。3.合理使用LinearLayout。使用LinearLayout线性布局可以将子组件按照垂直或水平方向排列。然而,在进行线性布局时,当组件数量较多时,可能会导致界面换行或出现空白区域。建议在进行线性布局时,考虑使用其他布局管理器。

2.1布局概述

2.1.2布局规范4.根据屏幕尺寸和分辨率选择合适的布局。不同的屏幕尺寸和分辨率需要使用不同的布局管理器。建议根据目标设备的屏幕尺寸和分辨率,选择合适的布局管理器,以确保界面在不同设备上呈现一致的效果。5.优化布局性能。在Android应用开发中,需要考虑布局的性能问题。例如,避免在布局中频繁进行复杂的计算和渲染操作,避免出现不必要的视图切换和动画效果等。

2.2布局管理器

常见布局管理器线性布局管理器LinearLayout网格布局管理器GridLayout帧布局管理器FrameLayout相对布局管理器RelativeLayout表格布局管理器TableLayout约束布局管理器ConstraintLayout

2.2布局管理器

2.2.1LinearLayoutLinearLayout用于将子组件按照垂直或水平方向排列。通过设置LinearLayout的布局参数,可以指定它们的布局方向、对齐方式等。LinearLayout的常用属性如表2-1所示,常用方法如表2-2所示。

2.2布局管理器

2.2.1LinearLayout

表2-1LinearLayout常用属性属性说明orientation设置布局方向:vertical(垂直)或horizontal(水平)id为组件指定对应的IDtext指定组件中显示的文字gravity指定组件的基本位置,如居中、靠右等textSize指定组件中字体的大小

2.2布局管理器

2.2.1LinearLayout

表2-1LinearLayout常用属性属性说明background指定组件使用的背景色width指定组件的宽度height指定组件的高度padding指定组件的内边距weight设置组件的权重,用于组件在水平或垂直方向上的比例

2.2布局管理器

2.2.1LinearLayout

表2-2LinearLayout常用方法方法说明setLayoutParams(LinearLayout.LayoutParamsparams)设置布局参数addView(Viewchild)添加子组件addView(Viewchild,intindex)在指定位置添加子组件addView(Viewchild,LinearLayout.LayoutParamsparams)添加子组件,并指定布局参数

2.2布局管理器

2.2.1LinearLayout

表2-2LinearLayout常用方法方法说明addView(Viewchild,intwidth,intheight)添加子组件,并指定宽度和高度addView(Viewchild,LinearLayout.LayoutParamsparams,intwidth,intheight)添加子组件,并指定布局参数、宽度和高度

2.2布局管理器

2.2.1LinearLayout线性布局案例

:使用线性布局实现岭南文化登录页面,左图为布局设计组件树,右图为显示效果。

2.2布局管理器

2.2.2RelativeLayoutRelativeLayout用于根据其他组件的位置来定位自身或其他组件。通过设置

属性,可以指定组件相对于其他组件的位置。RelativeLayout的常用属性如表2-3所示。

表2-3RelativeLayout常用属性属性说明layout_width设置RelativeLayout的宽度,可选值为match_parent、wrap_content等。layout_height设置RelativeLayout的高度,可选值为match_parent、wrap_content等。

2.2布局管理器

2.2.1RelativeLayout

表2-3RelativeLayout常用属性方法说明layout_gravity设置RelativeLayout在其父容器内的位置,可选值为left、right、top、bottom等layout_marginStart设置RelativeLayout与其最近的前置元素之间的起始边界距离。layout_marginTop设置RelativeLayout与其最近的顶层元素之间的顶部边界距离。layout_marginEnd设置RelativeLayout与其最近的元素之间的结束边界距离。

2.2布局管理器

2.2.1RelativeLayout

表2-3RelativeLayout常用属性方法说明layout_marginBottom设置RelativeLayout与其最近的底层元素之间的底部边界距离。layout_alignStart设置RelativeLayout与指定元素之间的起始边界的对齐方式。layout_alignTop设置RelativeLayout与指定元素之间的顶部边界的对齐方式。layout_alignEnd设置RelativeLayout与指定元素之间的结束边界的对齐方式。

2.2布局管理器

2.2.1RelativeLayout

表2-3RelativeLayout常用属性方法说明layout_alignBottom设置RelativeLayout与指定元素之间的底部边界的对齐方式。layout_toStartOf设置RelativeLayout与指定元素之间的起始边界距离,使其位于指定元素的起始侧。layout_toEndOf设置RelativeLayout与指定元素之间的结束边界距离,使其位于指定元素的结束侧。layout_toLeftOf设置RelativeLayout与指定元素之间的起始边界距离,使其位于指定元素的左侧。

2.2布局管理器

2.2.1RelativeLayout

表2-3RelativeLayout常用属性方法说明layout_toRightOf设置RelativeLayout与指定元素之间的结束边界距离,使其位于指定元素的右侧。layout_above设置RelativeLayout与指定元素之间的顶部边界的对齐方式,使其位于指定元素的上方。layout_below设置RelativeLayout与指定元素之间的底部边界的对齐方式,使其位于指定元素的下方。

2.2布局管理器

2.2.2RelativeLayout示例

:3个按钮分别位于RelativeLayout的上方、中间和右侧。

2.2布局管理器

2.2.2RelativeLayout相对布局案例

:使用相对布局实现岭南文化中端砚展示,左图为布局设计组件树,右图为显示效果

2.2布局管理器

2.2.3TableLayout

TableLayout允许在LinearLayout的上下文中组织视图,将子组件按照行、列的

方式排列;是一个灵活的布局管理器,非常适合在具有多个动态和静态子视

图的应用中使用。TableLayout常用属性:(1)stretchColumns:指定哪些列可以被拉伸以适应额外的空间,格式为“逗号分隔的列索引”,如“0,2”。在默认情况下,所有列都可以被拉伸。(2)shrinkColumns:指定哪些列可以被收缩以适应空间不足的情况,格式同上。在默认情况下,没有列可以被收缩。

2.2布局管理器

2.2.3TableLayoutTableLayout的常用属性:(3)collapseColumns:指定哪些列可以被完全隐藏,以适应空间不足的情况,格式同上。在默认情况下,没有列可以被完全隐藏。(4)scrollHorizontally:如果值为true,那么允许通过水平滚动条查看不能适应表格宽度的内容。其默认值为false。(5)shrinkableColumnsCount:指定在滚动视图时哪些列可以被收缩。其默认值为-1,表示所有列都可以被收缩。如果值为n,那么表示只有从左侧起的n个列可以收缩。shrinkableColumnsCount和stretchableColumns对应。

2.2布局管理器

2.2.3TableLayout

在XML文件中,使用TableLayout布局看起来是这样的。

2.2布局管理器

2.2.3TableLayout

使用java创建TableLayout布局。

添加TableRow到TableLayout中。TableLayouttableLayout=newTableLayout(context);tableLayout.setOrientation(LinearLayout.VERTICAL);//Bydefaultit'sverticalTableRowrow=newTableRow(context);tableLayout.addView(row);

2.2布局管理器

2.2.3TableLayout

在TableRow中添加视图元素。

ImageViewimageView=newImageView(context);imageView.setImageResource(R.drawable.some_image);row.addView(imageView);

2.2布局管理器

2.2.3TableLayout表格布局案例

:使用表格布局实现岭南文化中端砚展示,左图为布局设计组件树,右图为显示效果

2.2布局管理器

2.2.4GridLayoutGridLayout用于将子组件按照网格的方式排列。

GridLayout的常用属性和方法,如表2-4所示。

表2-4GridLayout常用属性和方法属性和方法说明columnCount设置网格的列数rowCount设置网格的行数

2.2布局管理器

2.2.4GridLayout

表2-4GridLayout常用属性和方法属性说明orientation设置网格的布局方向:vertical(垂直)或horizontal(水平)gravity设置网格内元素的对齐方式,如居中、靠右等addView(Viewview,intindex)添加视图,参数包括视图对象和它的位置(从上开始计数,第一行第一列的位置为0)

2.2布局管理器

2.2.4GridLayout网格布局案例

:使用网格布局实现端砚问天阁聊天室,左图为布局设计组件树,右图为显示效果。

2.2布局管理器

2.2.5FrameLayoutFrameLayout用于将子组件按照叠加的方式排列。

FrameLayout的常用属性和方法,如表2-5所示。表2-5FrameLayout常用属性和方法属性和方法说明background设置FrameLayout的背景颜色或背景图片visibility设置FrameLayout的可见性,可选值为visible、invisible、goneaddView(Viewview,intindex)添加视图,参数包括视图对象和它的位置(从上开始计数,第一行第一列的位置为0)

2.2布局管理器

2.2.5FrameLayout示例

:使用FrameLayout展示岭南文化中的端砚。将背景图片和端砚图片分别设置为布局的背景和顶层视图。背景图片填充整个FrameLayout,而因端砚图也填充了整个FrameLayout故它覆盖了背景图片。当然,也可以在FrameLayout中添加其他组件,如文字、按钮等,以展示更多的岭南文化元素。

2.2布局管理器

2.2.6ConstraintLayout

ConstraintLayout是一种灵活的布局管理器,使用ConstraintLayout可以很方便

地实现复杂的界面布局。ConstraintLayout的常用属性如表2-6所示,常用方法如表2-7所示。

2.2布局管理器

2.2.6ConstraintLayout

表2-6ConstraintLayout常用属性属性说明layout_constraintWidth_default宽度默认约束,可选值为wrap_content、match_constraint和match_parentlayout_constraintHeight_default高度默认约束,可选值为wrap_content、match_constraint和match_parent

2.2布局管理器

2.2.6ConstraintLayout

表2-6ConstraintLayout常用属性属性说明layout_constraintTop_toTopOf顶部约束,指定顶部参照元素,如另一个控件的IDlayout_constraintBottom_toBottomOf底部约束,指定底部参照元素,如另一个控件的IDlayout_constraintLeft_toLeftOf左侧约束,指定左侧参照元素,如另一个控件的ID

2.2布局管理器

2.2.6ConstraintLayout

表2-6ConstraintLayout常用属性属性说明layout_constraintRight_toRightOf右侧约束,指定右侧参照元素,如另一个控件的IDlayout_constraintHorizontal_bias水平偏移比例,用于设置相对于水平参照元素的偏移量layout_constraintVertical_bias垂直偏移比例,用于设置相对于垂直参照元素的偏移量

2.2布局管理器

2.2.6ConstraintLayout

表2-7ConstraintLayout常用方法属性说明setLayoutParams(ConstraintLayout.LayoutParamsparams)设置该组件的布局参数addView(Viewchild)添加子组件addView(Viewchild,intindex)在指定位置添加子组件

2.2布局管理器

2.2.6ConstraintLayout

表2-7ConstraintLayout常用方法属性说明setLayoutParams(ConstraintLayout.LayoutParamsparams)添加子组件,并指定布局参数addView(Viewchild)添加子组件,并指定宽度和高度addView(Viewchild,intindex)添加子组件,并指定布局参数、宽度和高度setOnLayoutInflatedListener(ConstraintLayout.OnLayoutInflatedListenerlistener)设置布局加载完成时的回调监听器

2.2布局管理器

2.2.6ConstraintLayout约束布局案例

:使用约束布局实现岭南文化中端砚展示,左图为布局设计组件树,右图为显示效果

2.2布局管理器

2.2.7嵌套布局

在AndroidStudio中,可以将多个布局管理器嵌套在彼此内部以创建复杂的用户界面。嵌套布局管理器是一种允许您在一个布局管理器内部再放置另一个布局管理器的方式。

2.2布局管理器

2.2.7嵌套布局嵌套布局案例

:使用嵌套布局实现砚友圈,左图为布局设计组件树,右图为显示效果。

本章小结布局管理器用于控制界面组件在屏幕中的布局方式。Android提供了多种布局管理器,包括LinearLayout、RelativeLayout、TableLayout、FrameLayout、GridLayout和ConstraintLayout等。可以使用XML文件或Java代码定义布局管理器。布局管理器是ViewGroup的子类,可以嵌套其他的布局管理器或ViewGroup。在实际开发中,需要根据界面需求选择合适的布局管理器,以实现美观、易用的界面效果。Android常用控件前言控件是Android图形界面开发的基石,在Android应用开发中,需要使用的控件有很多,有文本控件、按钮控件、图形图像控件、选择控件、时间控件、进度显示控件、导航控件、视频媒体控件等。03Toast04图形图像控件目录01文本控件02按钮控件05选择控件

3.1文本控件

3.1.1TextViewTextView是用于显示文字(字符串)的控件,可以在XML文件中通过设置属性来控制文字的大小、颜色、样式等。属性说明android:layout_width设置TextView的宽度android:layout_height设置TextView的高度android:id设置TextView的唯一标识android:background设置TextView的背景android:text设置TextView中的内容android:textColor设置文字颜色android:textSize设置文字大小,推荐使用单位为spAndroid:textStyle设置文本样式,如bold(加粗)、normal(正常)android:ellipsize设置文本超出TextView规定的范围的显示方式android:gravity设置TextView中内容的位置android:layout_margin设置当前控件与屏幕边界或周围控件、布局的距离android:padding设置TextView与该控件中内容的距离android:maxLength设置文本的最大长度,超出此长度的文本不显示android:lines设置文本的行数,超出此行数的文本不显示android:maxLines设置文本的最大行数,超出此行数的文本不显示android:drawableTop在文本的顶部显示图片android:lineSpacingExtra设置额外行间距数值,单位通常为dp,即在每行(最后一行除外)文本之后添加的间距,值为正代表增加行间距,值为付代表减少行间距android:lineSpacingMultiplier设置行间距

的倍数,没有单位,结果为当前高度的乘数值(如1.2)而不为固定值Android:lineHeight设置行高

3.1

文本控件

3.1.1TextView例如:将屏幕的背景设计为自己喜欢的颜色,并在中间放置一个TextView,内容为“AndroidLogo”字体以斜体显示,在其上方放置一个AndroidStudio内置的图标,如右图所示:在activity_main.xml文件中,核心代码如下:

3.1

文本控件

3.1.2EditTextEditText继承TextView,可以进行编辑操作。用户可以在EditText中输入信息,将信息传递给程序,还可以为EditText设置监听器,用来测试输入的信息是否合规。属性说明android:hint设置控件中内容为空时显示的提示android:textColorHint设置控件中内容为空时显示的提示的颜色android:inputType设置输入的文本类型,若有多种类型,则需要添加“|”分隔,如text|phone|textPassword

。android:maxLines设置文本的最多行数android:minLines设置文本的最少行数android:editable设置是否可编辑

3.1

文本控件

3.1.2EditText可以为EditText添加两个特殊的监听方法。

publicvoidsetOnEditorActionListener(TextView.onEditorActionListenerl)

publicvoidaddTextChangedListener(TextWatcherwatch)为EditText添加了这两个监听方法后,当EditText控件被编辑完输入Enter健或者Done健后则会触发执行setOnEditorActionListener()方法。当EditText内容发生变化则会触发addTextChangedListener()方法,需要实现TextWatcher接口。

3.1文本控件

3.1.2EditText例如:当用户在屏幕上的EditText中输入信息后,按Done健或Enter健,会显示输入的信息。效果如右图所示。

3.1文本控件

3.1.2EditText

在activity_main.xml文件中放置一个TextView,用于显示标题,一个EditText供用户输入文本,一个EditText用于显示监听到的内容,代码如右图所示。

3.1文本控件

3.1.2EditText

修改MainActivity.java文件,实现EditText的动作监听,代码如右图所示。

3.1文本控件

3.1.2EditText

修改MainActivity.java文件,实现EditText的动作监听,代码如右图所示。

3.1

文本控件

3.1.3AutoCompleteTextViewAutoCompleteTextView是一个可以补全输入的TextView。它是EditText的子类继承了EditText的属性和方法,AutoCompleteTextView的常用属性如右表所示。属性说明android:completionHint设置显示下拉列表的提示题目android:completionHintView

定义提示视图中显示下拉列表android:completionThreshold设置至少输入几个字符,才会具有自动提示的功能android:dropDownAnchor

如果后面接一个组件的ld,那么会在这个控件下弹出自动提示;如果没有指定该属性,那么将使用该AutoCompleteTextView作为定位“锚点”android:dropDownHeight

设置下拉列表的高度android:dropDownWidth设置下拉列表的宽度android:popupBackground设置下拉列表的背景android:dropDownHorizontalOffset指定下拉列表与文本之间的水平间距android:dropDownVerticalOffset指定下拉列表与文本之间的垂直间距android:dropDownSelector设置下拉列表的点击效果android:popupBackground

设置下拉列表的背景

3.1

文本控件

3.1.3AutoCompleteTextViewAutoCompleteTextView能够对用户的输入内容进行有效的扩充提示,不需要用户输入全部内容。默认必须输入至少两个字符才能提示,可以通过setThreshold(i)来更改,其中i为出现提示的最小输入字符数,该控件常用的方法如右图所示。方法说明publicvoidclearListSelection()清除所有的下拉列表项publicListAdaptergetAdapter()取得数据集publicvoidsetAdapter(Tadapter)设置数据集publicvoidsetcompletionHint(CharSequence)设置出现下拉列表的提示标题publicvoidsetThreshold(int)至少输入几个字符才会显示提示publicvoidsetDropHeight(int)设置下拉列表的高度publicvoidsetDropWidth(int)设置下拉列表的宽度publicvoidsetDropDownbackgroundResource(int)设置下拉列表的背景publicvoidsetOnClickListener(View.OnClickListenerlistener)设置点击事件public

voidsetOnItemClickListener(AdapterView.OnltemClickListenerlistener)在选项上设置点击事件publicvoidsetOnltemSelectedListener(AdapterView.OnltemSelectedListenerlistener)在选项选中时的点击事件

3.1

文本控件

3.1.3AutoCompleteTextView例如:当用户在屏幕上的AutoCompleteTextView控件中输入信息后,会提示前缀与该信息一致的所有信息列表,效果如右图所示。

3.1

文本控件

3.1.3AutoCompleteTextView

在activity_main.xml文件中,放置一个AutoCompleteTextView,用于显示输入的内容,代码如右图所示。

3.1

文本控件

3.1.3AutoCompleteTextView

在MainActivity.java文件中,为AutoCompleteTextView指定一个Adapter,即与数组进行绑定,当输入的内容与该数组的内容的前缀匹配,显示匹配的所有内容,代码如右图所示。

3.2

按钮控件

3.2.1Button按钮控件是人机交互的一种重要控件。Button表示按钮,由于Button继承TextView,因此它继承了TextView的属性。使用Button既可以显示文本又可以显示图片。Button允许用户通过点击执行操作,用于响应用户的一系列点击事件,以使程序更加流畅和完整。实现点击Button执行事件的方式有五种。

3.2

按钮控件

3.2.1Button(1)方式一:使用onClick属性步骤一:首先为Button控件添加onClick属性,属性值为后台方法名,程序代码如右图(一)所示;步骤二:接下来在MainActivity中添加属性值对应的方法,如右图(二)所示。

3.2

按钮控件

3.2.1Button(2)方式二:使用自定义类步骤一:首先在activity_main.xml文件中添加一个Button控件,不需要添加onClick属性,程序代码如右图(一)所示;步骤二:接下来在MainActivity中自定义一个点击事件监听器类,该类需要继承View.OnClickListener接口,代码如右图(二)所示。

3.2

按钮控件

3.2.1Button(2)方式二:使用自定义类步骤三:最后为Button控件添加自定义的点击事件监听器类代码如右图(三)所示。

3.2

按钮控件

3.2.1Button(3)方式三:使用匿名内部类步骤一:在activity_main.xml文件中添加一个Button,代码如右图所示。

3.2

按钮控件

3.2.1Button(3)方式三:使用匿名内部类步骤二:在MainActivity.java文件的类中为该控件注册事件监听器,事件处理程序为匿名内部类,代码如右图所示。

3.2

按钮控件

3.2.1Button(4)方式四:使用内部类步骤一:在activity_main.xml文件中添加一个Button按钮。代码如右图(一)所示。步骤二:在MainActivity.java文件的类中创建一个

实现了View.OnClickListener接口的内部类,最后为Button注册事件监听器,事件处理程序为内部类,代码如右图(二)所示。

3.2

按钮控件

3.2.1Button(5)方式五:使用自身类步骤一:在activity_main.xml文件中添加一个Button按钮。代码如右图(一)所示。步骤二:在让MainActivity.java文件的MainActivity类

实现View.OnClickListener接口,最后为Button注册事件监听器,事件处理程序为自身类,代码如右图(二)所示。

3.2

按钮控件

3.2.1Button例如:当用户在屏幕上的两个EditText都输入信息后,点击“submit”按钮,会显示用户输入的信息,当用户在屏幕上的两个EditText中都不输入信息时,提示“Notinginput”;当用户在屏幕上的两个EditText都输入信息后,点击“Reset”按钮,会显示“Clearsuccessful”;当用户点击“Cancel”按钮时会退出当前页面,完成效果如右图所示。

3.2

按钮控件

3.2.1Button

在activity_main.xml中添加三个TextView、两个EditText和三个Button。代码如右图所示。

3.2

按钮控件

3.2.1Button

在activity_main.xml中添加三个TextView、两个EditText和三个Button。代码如右图所示。

3.2

按钮控件

3.2.1Button

在MainActivity.java文件中为三个Button添加对应对象的点击事件监听器,并在各自的onClick()方法中完善事件处理逻辑。代码如右图所示。

3.2

按钮控件

3.2.1Button

在MainActivity.java文件中为三个Button添加对应对象的点击事件监听器,并在各自的onClick()方法中完善事件处理逻辑。代码如右图所示。

3.2

按钮控件

3.2.2ToggleButton与SwitchToggleButton和开关Switch,他们都有开和关两种状态,在不同的状态下可以有两种不同的文本。常用属性如右图所示。属性说明android:disabledAlpha设置ToggleButton在禁用时的透明度android:textOff设置ToggleButton没有被选中时显示的文字android:textOn设置ToggleButton被选中时显示的文字属性说明android:showText设置处于on/off状态时是否显示文字,为布尔值android:splitTrack定义是否设置一个间隙,让滑块与底部图片分隔,为布尔值android:switchMinWidth设置开关的最小宽度android:switchPadding设置滑块内文字的间隔android:switchTextAppearance设置文字外观android:textOff设置Switch没有被选中时显示的文字android:textOn:设置Switch被选中时显示的文字android:textStyle:设置文字风格android:track设置底部的图片android:thumb设置滑块上的图片android:typeface:设置字体,默认支持sans、serif、monospace

ToggleButton的常用属性Switch的常用属性

3.2

按钮控件

3.2.2ToggleButton与Switch例如:页面放置一个ToggleButton和一个Switch,当点击控件时,显示结果。

3.2

按钮控件

3.2.2ToggleButton与Switch

在activity_main.xml文件中添加一个ToggleButton和一个Switch,代码如右图所示。

创建shape_thumb.xml文件和shape_track.xml文件。右击res目录的drawable文件中,在弹出的快捷菜单中选择“DrawableResourceFile”命令,在打开的”NewResourceFile”对话框的“Filename”文本框中输入“shape_thumb”,在”Rootelement“文本输入框中输入”shape“,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论