版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程概述Android移动开发技术
课程目标学会Android应用开发的知识学会写Android小型App自学能力的培养,在学习中、实践中会查阅基本资料学习计算机专业英语学时:72
如何学仿写代码:上课样例整理笔记:建议有道笔记,整理结构与内容扩充资料:查百度、查SDK文档(整理到笔记本中)写代码:作业写代码
英语:每周不少于60个。每次课至少整理20个。项目简介学生空间App项目背景:结合学生日常学习生活的实际需求,通俗易懂。将学生空间App划分为若干个子App,采取从易到难、反复迭代的方式一步一步将学生空间App开发完成,使读者可以从零基础开始慢慢深入学习,最终完成学生空间App的开发。功能:登录/注册:用户的登录、注册功能;个人信息维护:学生对个人基本信息进行查询及维护操作;课程管理:学生可以对自己的课程进行相应的增、删、改、查操作。学生工具箱:提供三种常用工具供学生使用,分别为系统音乐播放器、计算器、记事本;任务1什么是AndroidAndroid应用的结构Android系统概述Android相关工作岗位AndroidStudio开发平台Android模拟器及使用Android应用程序结构01Android系统概述Android系统概述Android的发展与历史Android平台总体架构、Dalvik1Android系统简介Android是基于Linux内核的操作系统,主要应用于便携设备,是Google公司于2007年11月5日公布的智能手机操作系统,早期由Google开发,后由开放手持设备联盟(OpenHandsetAlliance)开发。2Android的发展与历史Android系统的由来Android操作系统最初由AndyRubin开发。AndyRubin1963年生于纽约州。先后创办了Danger和Android两个公司;Danger公司后来被微软收购,而Android公司被Google收购。2005年,Google低调收购了Android公司,Rubin留在了Google,负责将Android开发成为一款开源的操作系统。Rubin现在担任Google的工程副总裁。2Android的发展与历史绿巨人的崛起Symbian只存活了14年就迎来了谢幕2007年iOS呱呱坠地,数年后助力苹果成为市值最大
的公司2007年前,Android还在实验室,今天却占据全球智
能手机市场的半壁江山一代"PDA王子"palm卖给HP了,WindowsMobile
改名为WindowsPhone,BlackberryOS成末代贵族
了。。。我们庆幸身处这个伟大的时代,可以批评Symbian的僵化,仰望iOS的魔力,叹息BlackberryOS的固执,亲历Android的崛起!2Android的发展与历史Android系统命名规则Android系统从Android1.5发布开始,用甜点作为它们系统版本的代号。作为每个版本代表的甜点尺寸越变越大,并按照26个字母数排序,例如:Android1.5Cupcakes(纸杯蛋糕)Android2.3Gingerbread(姜饼)Android4.1JellyBean(果冻豆)2Android的发展与历史第一个安卓手机的发布(2008年10月22日)T-MobileG1(海外所熟知的HTCDream)是第一个装载安卓的智能手机。虽然这部手机非常笨拙,但是整体上得到了很好的认可,卖出了100多万台。安卓Gingerbread(姜饼)首次亮相(2010年12月6日)
安卓2.3Gingerbread(姜饼)增加了对NFC(近距离通信)和大量其他传感器的支持,包括陀螺仪和气压计。Gingerbread将成为世界上最多使用的移动操作系统。第一个真正的安卓平板电脑发布(2011年2月24日)摩托罗拉Xoom成为第一个真正意义上的安卓平板,而且是随着安卓3.0Honeycomb(蜂窝)一起发布的。Honeycomb(蜂窝)添加了对多核处理器的支持,是迄今为止唯一一个没有进入开放源代码的安卓版本。2Android的发展与历史谷歌向外展示了IceCreamSanwich(冰淇淋三明治)(2011年10月19日)安卓4.0IceCreamSandwich(冰淇淋三明治)对这个操作系统作了一次大的彻底的更改,从Honeycomb(蜂窝)引入许多元素到智能手机。这个版本的操作系统包含了大量新的特性,包括安卓Beam,全景式拍照以及通过脸孔进行手机解锁的能力。最新版本Marshmallow(棉花糖)(2015年10月)安卓6.0Marshmallow(棉花糖)是目前公布的最新Android操作系统,系统新增了一些特色功能:"屏幕固定"功能,能将手机界面锁定在某个应用中;"智能解锁"功能,可在信任wifi或者信任地点自动解锁设备…2Android的发展与历史Android系统特点平台开放性;丰富的硬件选择;开发便捷性;广泛的开发群体,具有强大的Linux社区的支持采用了对有限内存、电池和CPU优化过的虚拟机Dalvik;运营商(中国移动等)的大力支持;3Android平台总体架构、Dalvik应用程序层程序框架层中间件层Linux内核1、Linux内核2、中间件层3、程序框架层4、应用程序层3Android平台总体架构、DalvikDalvik虚拟机DalvikVM是在Android系统上运行Android程序的虚拟机,是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。Dalvik虚拟机可运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限的系统。3Android平台总体架构、DalvikDalvikVM和JVM的区别Dalvik基于寄存器,而JVM基于栈基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。JVM字节码中,局部变量会被放入局部变量表中,继而被压入堆栈供操作码进行运算。而Dalvik字节码中,局部变量会被赋给65536个可用的寄存器中的任何一个,Dalvik指令直接操作这些寄存器3Android平台总体架构、DalvikDalvikVM和JVM的区别Dalvik和Java字节码的区别Dalvik执行.dex格式的字节码,而JVM执行.class格式的字节码。3Android平台总体架构、DalvikDalvikVM和JVM的区别Dalvik和Java运行环境的区别Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。4Android的版本版本版本代号发布时间主要特性Android1.1PetitFour2009电子邮件、地图、浏览器等Android1.5Cupcake2009录像、蓝牙、复制粘贴功能等Android1.6Donut2009语音搜索/阅读、照相、摄像手势搜索、Android市场集成Android2.0/2.1Eclair2009提升硬件速度、更多屏幕及分辨率的选择、用户界面改良、Google地图3.1.2、活动壁纸Android2.2Froyo2010支持Flash10.1、支持应用安装在记忆卡、最高5倍速度提升Android2.3Gingerbread2010支持前置摄像头、支持VOIP/SIP/NFC支持VP8和WebM视频格式Android3.0/3.1/3.2Honeycomb2011专用于平板电脑Android4.0IceCreamSandwich2011电视、手机、平板统一版本、针对多核处理器的优化、全新的UI设计Android4.1/4.2/4.3JellyBean2012提升用户页面的速度和流畅性,更多的平板优化,大幅改变用户界面设计Android4.4Kitkat2013优化存储器使用,原生计步器,NFC付费集成Android5.0/5.1Lollipop2014支持64位处理器,新增多人设备分享功能,改善AndroidTV的支持Android6.0Marshmallow2015原生指纹识别认证,自动应用数据备份,支持原生点击唤醒功能等4Android的版本IDC:2019年Android将占82.6%市场份额高版本兼容低版本02Android工作岗位2Android相关工作岗位需求分析市场调研需求工程师/市场工程师启动代码Linux内核开发/驱动开发Linux系统/驱动工程师硬件设计与调试裸机程序开发以验证硬件功能硬件工程师/ARM工程师AndroidHAL层开发ApplicationApplicationAndroidLIBJavaNativeInterfaceApplicationFramework虚拟机Android应用工程师Android系统工程师工作内容工作岗位2Android相关工作岗位Android应用开发与实战Android高级应用开发(以太网、WIFI、摄像头、3G电话/短信/上网、WIFI、GPS、蓝牙、校准程序……)项目案例(GPS定位应用、3G通讯应用)移植开发手机系统Android系统开发应用程序开发123Android系统移植、编译、固化、运行AndroidHAL层程序开发AndroidJNI层程序开发AndroidNDK开发中间件嵌入式Linux系统移植(Uboot、Linux-2.6.30)、编译、固化嵌入式Linux驱动开发ARMRealViewMDK底层软硬件开发03AndroidStudio的下载和安装为什么使用AndroidStudioAndroidStudio的下载和安装AndroidStudio中模拟器的使用目前主流的Android开发环境有两种,一种是AndroidStudio,一种是Eclipse、AndroidSDK和ADT插件的组合。经过几次更新之后,谷歌推出的AndroidStudio已经成为非常强大的集成开发环境,并且谷歌也宣布2015年底已中止对Eclipse的官方支持,目前Eclipse支持Android的最高版本为Android6.0。AndroidStudio是一款全新的基于IntelliJIDEA的AndroidIDE,类似于EclipseADT插件,AndroidStudio提供了集成的Android开发工具用于开发和调试。为什么使用AndroidStudio目前主流的Android开发环境
Eclipse+AndroidSDK+ADTAndroidStudio
AndroidStudio是一项全新的基于IntelliJIDEAAndroid开发环境。类似于EclipseADT插件,AndroidStudio提供了集成的Android开发工具用于开发和调试。②Android开发平台与环境配置经过几次更新之后AndroidStudio已经成为了非常强大的IDE开发环境。谷歌也宣布2015年中止为Eclipse提供官方支持。目前Eclipse支持Android的最高版本为Android6.0。下载AndroidStudio地址:/sdk/index.html
可以根据自己的实际需要,选择一个合适的版本下载。一般来说,比较推荐下载android-studio-bundle-143.2821654-windows.exe,因为在这个版本中已经包含了AndroidSDK,无需再单独下载,比较方便。下载完成后,双击一步步安装即可,如下图:AndroidStudio的下载和安装01.AndroidStudio的下载和安装运行AndroidStudio,在每一次安装后,都会显示如图所示的界面,这是用来选择导入AndroidStudio的配置文件。如果你以前使用过AndroidStudio,可以选择用以前的配置文件。如果你是第一次使用,可以选择第二项。01.AndroidStudio的下载和安装AndroidStudio的下载和安装出现如下图所示的界面,AndroidStudio已经安装好并可以使用了01.AndroidStudio的下载和安装AndroidStudio的下载和安装AndroidStudio工具栏中点击"AVDManager"图标,打开AVDManager,点击界面中的"CreateVirtualDevice"按钮,打开创建Android模拟器的界面AndroidStudio中模拟器的使用01.AndroidStudio的下载和安装根据需要选择相应的设备,点击"Next"按钮,选择一个系统版本,然后进入模拟器配置界面,在此界面输入所创建模拟器的名字,并对相关选项进行配置。01.AndroidStudio的下载和安装AndroidStudio中模拟器的使用点击"Finish"按钮完成AVD的创建,可以在AVDManager中看到新创建的模拟器,如图下图所示,点击右侧的绿色箭头,即可以启动该模拟器。01.AndroidStudio的下载和安装AndroidStudio中模拟器的使用04Android模拟器及使用使用google提供的AVD使用genymotion模拟器使用真实Android手机AndroidStudio点击工具栏上的AVD图标启动android虚拟设备管理器使用google提供的AVD创建新的虚拟机使用google提供的AVD点击next,选择或下载系统镜像使用google提供的AVD点击next,修改配置,点击finish完成创建。使用google提供的AVD进入genymotion官网/,点击下载按钮,输入已注册的邮箱即可下载安装包,因为Genymotion运行需要VirtualBox,如果电脑中没安装过,选这个版本。这个版本包含OracleVirtualBox4.2.12支持,因此您不用再手动下载安装VirtualBox。使用genymotion双击运行下载的Genymotion安装文件,选择中文语言并点击下一步使用genymotion在安装完Genymotion后,会继续安装VirtualBox,按提示继续安装即可。使用genymotion安装完成后,启动genymotion,创建一个新的虚拟设备,需要你输入用户名和密码验证,验证成功后,即可选择所需的设备进行创建。使用genymotion为方便开发调试,可在AndroidStudio中添加Genymotion插件使用genymotion手机通过数据线连接在电脑上设置android手机为USB调试模式。步骤:menu—>设置—>应用程序—>开发,选择【USB调试】如果是window系统,系统会提示安装驱动:运行时选择已连接的手机设备即可使用Android真机调试运行05Android应用程序结构AndroidStudio使用示例AndroidStudio应用的目录结构新建Android工程T1_1_HelloWorld,在AndroidStudio界面的菜单中依次选择File->New->NewProject打开创建向导AndroidStudio使用示例02.AndroidStudio的使用在Android项目创建向导界面,依次输入应用程序的名字、公司域名,选择工程所在位置,然后点击"Next"按钮,如下图02.AndroidStudio的使用AndroidStudio使用示例
根据需求,选择最低SDK版本,然后点击"Next"按钮按提示选择相应的Activity,并输入Activity名称、布局名称等内容最后点击"Finish"即完成了T1_1_HelloWorldAndroid项目的创建,并自动完成了HelloWord应用所需要的代码。02.AndroidStudio的使用AndroidStudio使用示例AndroidStudio提供的项目结构类型AndroidStudio应用的目录结构02.AndroidStudio的使用在这几种项目结构类型中,Project结构类型的所有视图都是真实的目录,project和module结构显示清晰Android结构类型最大的优点就是隐藏了一些自动生成的文件和目录,并且把一些资源文件、源文件清晰的合并在一起,让开发者对于比较关心的文件一目了然常用的就是这两种结构。
Project结构类型02.AndroidStudio的使用app/build/:编译输出的目录app/build.gradle:app模块的gradle编译文件app/app.iml:app模块的配置文件app/:app模块proguard文件build.gradle:项目的gradle编译文件gradlew:编译脚本,可以在命令行执行打包perties:配置SDK/NDKsettings.gradle:定义项目包含哪些模块T1_1_HelloWorld.iml:项目的配置文件ExternalLibraries:项目依赖的Lib,编译时自动下载AndroidStudio应用的目录结构
Android结构类型02.AndroidStudio的使用app/manifests/AndroidManifest.xml:Android项目的清单文件app/java:项目的源代码及测试代码app/res:项目的资源目录,存储所有的项目资源app/res/drawable:存放一些自定义形状和按钮切换颜色之类的xmlapp/res/layout:存放布局文件app/res/mipmap:存放原生图片资源app/res/values:存放app引用的一些值,例如colors.xml、dimens.xml、strings.xml、styles.xml。GradleScripts:gradle编译相关的脚本AndroidStudio应用的目录结构定义应用程序的Java包,这个包名将作为应用程序的唯一标识定义应用程序的四个组件-活动、服务、广播接
收者、内容提供者。决定了哪个Activity将作为第一个运行的Activity声明为了访问API中受保护的部分以及与其他应用程序交互,应用程序具备的权限声明应用程序需要的最小API级别列出应用程序必须引用的程序库AndroidManifest.xml清单文件DDMS窗体搭建Android开发环境。创建一个HelloWorldAndroid应用程序,并在模拟器上运行。简述如图所示的Android项目的目录结构,命名及含义。实操练习学生空间App的界面设计任务2任务2基本控件一基本控件二触屏与键盘事件菜单与消息通知基本控件一界面控件的基本结构TextView控件EditText控件Button控件基本控件二ImageViewCheckBoxRadioButton(RadioGroup)触屏与键盘事件触屏事件按键事件菜单与消息通知菜单对话框通知界面控件的基本结构1.1App的基本步骤常用控件属性App的基本步骤任务描述:App的基本步骤常用控件:常用控件序号控件名称作用描述1TextView用于显示文本信息2Button普通按钮3EditText可编辑的文本框组件(输入框)4ImageView用于显示图片5ImageButton图片按钮6CheckBox复选框7RadioGroup单选框8Spinner下拉列表组件9ProgressBar进度条10SeekBar拖动条11RatingBar评分组件12ListView列表13Dialog对话框……Toast信息提示组件属性每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。属性1.2TextView控件概述TextView常用属性TextView使用方法TextView控件TextView继承自View类,在android.widget包中TextView控件的功能是向用户显示文本的内容,但不允许编辑TextView控件概述TextView常用属性
TextView常用属性序号属性名称作用描述1android:layout_width设置控件的宽度2android:layout_height设置控件的高度3android:id设置组件的id4android:text设置文本内容5android:textColor设置文本颜色6android:textSize设置文本大小7android:backGround设置控件的背景色8android:gravity设置文本相对控件的位置……android:layout_gravity设置控件相对于其所在容器的位置属性和方法更详细介绍参见AndroidSDK开发文档Android/android-sdk_r24.0.2-windows/android-sdk-windows/docs/reference/android/widget/TextView.htmlTextView常用属性TextView控件要能使用首先要增加到布局文件中,即是/res/layout/main.xml文件中。添加控件有两种方式:1.拖放控件到界面中;2.在代码中添加控件;TextView使用方法初始添加的TextView控件默认形式,若需要修改TextView的显示内容、字体大小等,有两种方式:可以通过XML中修改某个属性的值来达到控制控件的表现形式。也可以通过代码中获取这个控件的对象来修改他的属性。View在xml中必须配置了id;通过ViewfindViewById(intid);TextView使用方法一在XML中设置控件属性:设置字体大小推荐使用sp作为单位,设置宽度或高度等属性时推荐使用dp作为单位三原色定义RGBandroid:id属性声明了TextView的ID,这个ID主要用于在代码中引用这个TextView对象“@+id/TextView01”表示所设置的ID值@表示后面的字符串是ID资源加号(+)表示需要建立新资源名称,并添加到R.java文件中斜杠后面的字符串(tv1)表示新资源的名称常用常量有三个:"wrap_content","match_parent","fill_parent"TextView使用方法二在java代码中设置控件属性:首先需要导入TextView包获得main.xml中的TextView对象0xFF0000FF是int类型的数据,分组一下0x|FF|0000FF,0x表示颜色整数的标记,FF表示透明度,0000FF表示色值,对于透明度,00表示完全透明,ff表示完全不透明TextView使用方法1.3EditText控件概述EditText常用属性EditText使用方法EditText控件EditText是一个非常重要的组件,它是用户和Android应用进行数据传输窗户,有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给Android应用,然后得到我们想要的数据。EditText继承自android.widget.TextView,在android.widget包中EditText控件概述EditText是TextView的子类,具有TextView的属性特点,下面主要是EditText特有的属性特点:
序号属性名称作用描述1android:inputType设置文本的类型2android:digits设置允许输入哪些字符3android:hint设置编辑框内容为空时显示的提示信息4android:password设置只能输入密码,以小点”.”显示文本5android:singleLine设置文本单行显示6android:editable设置是否可编辑7requestFocus()使当前组件对象获得焦点8android:phoneNumber设置为电话号码的输入方式……android:ems设置控件的宽度为N个字符的宽度EditText常用属性属性和方法更详细介绍参见AndroidSDK开发文档Android/android-sdk_r24.0.2-windows/android-sdk-windows/docs/reference/android/widget/EditText.htmlEditText常用属性EditText使用方法1.4Button控件概述Button使用方法Button控件Button控件是一种按钮控件,用户可以在该控件上点击,并能引发相应的事件处理函数;继承自android.widget.TextView,在android.widget包中;他的常用子类CheckBox,RadioButton,ToggleButto。Button控件概述属性和方法更详细介绍参见AndroidSDK开发文档Android/android-sdk_r24.0.2-windows/android-sdk-windows/docs/reference/android/widget/Button.htmlButton控件概述一在XML中创建Button控件:二在java代码中添加点击事件为Button注册点击事件的监听器Button使用方法Button使用方法在AndroidSDK文档中对于点击事件有如下描述:Button使用方法ImageView2.1ImageView控件概述ImageView常用属性ImageView使用方法ImageView控件概述ImageView控件是用于展示图片的控件,可以展示两类图片:普通的静态图片;动态的图片,如GIF格式的图片。ImageView常用属性序号属性名称作用描述1android:adjustViewBounds是否保持宽高比,需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果2android:cropToPadding是否截取指定区域用空白代替,单独设置无效果,需要与scrollY一起使用3android:maxHeight设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用4android:maxWidth设置View的最大宽度,单独使用无效,需要与setAdjustViewBounds一起使用5android:src用于设置ImageView中展示什么图片6android:scaleType设置图片的填充方式7android:tint将图片渲染成指定的颜色。T2_1_ImageView任务描述
利用ImageView控件实现图片循环浏览的功能:单击左图“下一幅”按钮,依次向后浏览不同图片。单击左图“上一幅”按钮,依次向前浏览不同图片。ImageView使用方法步骤一:将所需图片放置到相应文件夹中ImageView使用方法步骤二:创建布局方法一:拖放控件到界面中方法二:直接写代码布局两个按钮放到同一排上?布局控件及布局控件的嵌套ImageView使用方法步骤三:
按照需要设置ImageView控件的相关属性
android:id="@+id/img_showmulti"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btm1"序号属性名称作用描述1android:id设置该控件的id2android:layout_width设置ImageView的宽度(match_parent,wrap_content,具体数值)3android:layout_height设置ImageView的宽度(match_parent,wrap_content,具体数值)4android:src设置需要显示的图片ImageView使用方法步骤四:设置按钮的属性android:layout_gravity="right“
android:layout_weight="1"
android:layout_marginRight="20dp"序号属性名称作用描述1android:layout_gravity用来控制该控件在父控件中的位置2android:layout_weight用于给一个线性布局中的诸多视图的重要度赋值3android:layout_marginRight用来设置距离右边框的距离ImageView使用方法容易混淆属性对比android:gravity针对控件里的元素来说的,用来控制元素在该控件里的显示位置android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。android:layout_gravity针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。ImageView使用方法重要属性layout_weight用于设置一个线性布局中的诸多视图的权重。参考资料:
http:///w-y-f/p/4123056.html
/yanzi1225627/article/details/24667299ImageView使用方法步骤五:定义上一幅、下一幅按钮的逻辑。先写框架按钮一的onClick按钮二的onClick实现上一幅图片的逻辑。。。实现下一幅的图片的逻辑。。。ImageView使用方法改进点:if(++nowIndex<drawChange.length){ img_photo.setImageResource(drawChange[nowIndex]);ImageView使用方法CheckBox2.2CheckBox控件概述CheckBox常用属性及方法CheckBox使用方法CheckBox和Button一样,也是一种常见的控件,它的优点在于不用用户去填写具体的信息,只需点击选择框,缺点在于只有“是”和“否”两种情况,但我们往往利用它的这个特性,来获取用户的一些信息。CheckBox控件概述CheckBox常用的属性及方法如下:Checkbox添加如下属性,此标签默认为选中:android:checked=“true”(在xml文件中设置)isChecked()判断按钮是否处于被选中状态setChecked(Boolean
flag)传递一个布尔参数来设置按钮的状态CheckBox.getText();//获取多选框的值Android复选框被选择时处理方法:setOnCheckedChangeListener()方法Checkbox的直接父类是CompoundButton,间接父类是Button;CheckBox常用属性及方法T2_2_CheckBox任务描述:在UI界面上罗列出可选课程当用户选择或取消选择某一课程时,在文本框中实时显示当前所选内容。ImageView使用方法步骤一:界面布局步骤二:设置相关属性与界面风格吻合步骤三:写程序逻辑步骤四:写按钮事件ImageView使用方法改变CheckBox选择状态的方式有三种:1、XML中申明2、代码动态改变3、用户触摸ImageView使用方法实现逻辑处理的方法:为了实现单击CheckBox控件,实时显示所选课程,需为CheckBox添加一个监听器事件(可创建一个内嵌类CheckedChange实现CompoundButton类的OnCheckedChangeListener接口)。ImageView使用方法RadioButton2.3RadioButton控件概述RadioButton使用方法RadioButton和CheckBox的区别:1、单个RadioButton在选中后,通过点击无法变为未选中单个CheckBox在选中后,通过点击可以变为未选中2、一组RadioButton,只能同时选中一个(单选)一组CheckBox,能同时选中多个(多选)3、RadioButton在大部分UI框架中默认都以圆形表示
CheckBox在大部分UI框架中默认都以矩形表示RadioButton控件概述RadioButton和RadioGroup的关系:1、RadioButton表示单个圆形单选框,而RadioGroup是可
以容纳多个RadioButton的容器2、每个RadioGroup中的RadioButton同时只能有一个被
选中3、不同的RadioGroup中的RadioButton互不相干,即如果
组A中有一个选中了,组B中依然可以有一个被选中4、大部分场合下,一个RadioGroup中至少有2个
RadioButton5、大部分场合下,一个RadioGroup中的RadioButton默认
会有一个被选中,并建议您将它放在RadioGroup中的起
始位置RadioButton控件概述T2_3_RadioButton任务描述:用户可以选择充值金额20、50、100其中之一进行充值。当用户点击“显示输出话费”按钮时,用文本框显示出当前所选的具体充值金额。RadioButton使用方法步骤一:界面布局步骤二:设置相关属性与界面风格吻合步骤三:写程序逻辑步骤四:写按钮事件RadioButton使用方法实现实时监测RadioButton变化的方法:实现setOnCheckedChangeListener接口。RadioButton使用方法思考:RadioGroup和RadioButton通常只支持垂直或水平方向排列RadioButton,如何实现多行排列的效果?RadioButton使用方法触屏事件3.1触屏事件基本介绍MotionEvent类常用方法Android的触摸事件:onClick,onScroll,onFling等等,都是由许多个Touch组成的。其中Touch的第一个状态肯定是ACTION_DOWN,表示按下了屏幕。之后,touch将会有后续事件,可能是:ACTION_MOVE
//表示为移动手势ACTION_UP
//表示为离开屏幕一个Action_DOWN,N个ACTION_MOVE,一个ACTION_UP,就构成了Android中众多的事件。
触屏事件基本介绍手机屏幕触摸事件的处理方法是onTouchEvent。该方法是overrideActivity的方法。重写了Activity的onTouchEvent方法后,当屏幕有touch事件时,此方法就会调用。应用程序可以通过该方法处理手机屏幕的触摸事件。参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。返回值:返回值为true表示事件被正确接收和处理了,返回值为false表示事件没有被处理,将继续传递下去。publicbooleanonTouchEvent(MotionEventevent)触屏事件基本介绍switch(event.getAction()){
caseMotionEvent.ACTION_DOWN:{
//按下时触发
}
caseMotionEvent.ACTION_MOVE:{
//移动时触发
}
caseMotionEvent.ACTION_UP:{
//触摸后触发
}
}
returntrue;event.getAction()==MotionEvent.ACTION_UP触屏事件基本介绍也可以通过实现OnTouchListener的接口,然后设置TestButton的onTouchListener可以达到同样的目的onTouchListener的onTouch方法优先级比onTouchEvent高,会先触发。假如onTouch方法返回false会接着触发onTouchEvent,反之onTouchEvent方法不会被调用。内置诸如click事件的实现等等都基于onTouchEvent,假如onTouchEvent返回true,这些事件将不会被触发。触屏事件基本介绍MotionEvent类常用方法方法名称返回值与结果MotionEvent.getAction()1.屏幕被按下:当屏幕被按下时,此时MotionEvent.getAction()的值为MotionEvent.ACTION_DOWN。2.屏幕被抬起:当离开屏幕时触发的事件,此时MotionEvent.getAction()的值为MotionEvent.ACTION_UP。3.在屏幕中拖动:当在屏幕上滑动时,MotionEvent.getAction()值为MotionEvent.ACTION_MOVE。MotionEvent.getX()获得发生动作的坐标。按键事件3.2按键事件基本介绍按键事件主要用于对键盘事件的监听,根据用户输入内容对键盘事件进行跟踪,键盘事件使用View.OnKeyListener接口进行事件处理,接口定义如下:要监听键盘事件,必须知道按下和松开两种不同的操作,在OnKeyEvent可以找到按下松开的键。publicstaticinterfaceView.OnKeyListener{
publicbooleanOnKey(Viewv,intkeyCode,KeyEventevent);
}按键事件基本介绍按某个键会两次触发onkey方法--keyDown和keyUp处理思路:键按下时returntrue排除系统干扰键弹起时returnfalse由系统处理--可由系统来响应Enter等事件代码中我在Activity和View中同时重写onKeyDown与onKeyUp方法,他们的调用顺序是先是调用自定义View中的onKeyDown与onKeyUp方法然后才是调用Activity中的onKeyDown与onKeyUp方法。return
super.onKeyUp(keyCode,
event);
按键事件基本介绍菜单4.1菜单概述选项菜单上下文菜单菜单是许多应用程序不可或缺的一部分,Android中更是如此。常用菜单分为两类,选项菜单:最常规的菜单,android中把它叫做optionmenu;上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单。菜单概述选项菜单在2.3版本及以下是点击menu按键时弹出,4.0版android取消了菜单物理按键,Google提倡使用ActionBar,android4.0版本没有底部菜单的功能。选项菜单android.view.Menu接口代表一个菜单,android用它来管理各种菜单项。一般不自己创建menu,因为每个Activity默认都自带了一个,我们要做的是为它加菜单项和响应菜单项的点击事件。android.view.MenuItem代表每个菜单项,android.view.SubMenu代表子菜单。三者关系如右图:选项菜单使用方法:(1)创建布局文件;(2)在该布局上加载菜单;(3)为菜单项注册事件。选项菜单当用户长按Activity页面时,弹出的菜单我们称为上下文菜单。我们经常在Windows中用鼠标右键单击弹出的菜单就是上下文菜单。上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单则是注册到某个View对象上的。上下文菜单上下文菜单使用要领:覆盖Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项MenuItem。覆盖onContextItemSelected()方法,响应菜单单击事件。调用registerForContextMenu()方法,为视图注册上下文菜单。上下文菜单对话框4.2Dialog对话框分类AlertDialog对话框的使用方法Android中主要的对话框类如下:AlertDialog:一个可以拥有0、1、2或3个按钮的对话框,它里面的内容可以是文本、checkbox或radio的ListView,它是一个经常被用到的Dialog。ProgressDialog:一个窗体内部是Progressbar的Dialog,它继承了AlertDialog,所以它拥有的按钮跟AlertDialog一样。DatePickerDialog:一个提供选择日期功能的Dialog。TimePickerDialog:一个提供选择时间功能的Dialog。Dialog对话框分类一个对话框通常是在当前Activity之前显示的一个小的窗口。下面的Activity失去了焦点,上面的对话框接收用户的交互信息。对话框通常用来作为提示以及直接与程序运行过程相关的短暂停留界面。一个AlertDialog对话框继承与Dialog类。你应该使用如下特性来装点你的对话框:一个标题一条信息1、2、或3个按钮一组可供选择的项(复选框或者单选按钮)AlertDialog为了创建一个AlertDialog,可以使用AlertDialog.Builder子类。AlertDialog.Builder(Context)得到一个对话框构造器,然后使用该类的一些方法来定义AlertDialog对话框的所有属性。setTitle:为对话框设置标题
setIcon:为对话框设置图标
setMessage:为对话框设置内容
setView:给对话框设置自定义样式
setItems:设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems:用来设置对话框显示一系列的复选框
setNeutralButton
:普通按钮setPositiveButton
:给对话框添加"Yes"按钮
setNegativeButton:对话框添加"No"按钮
create:创建对话框
show:显示对话框AlertDialog1.创建一个Builder对象。2.设置要创建的Dialog的参数,如几个按钮,显示什么内容等。3.为按钮设置回调函数(因为Android中的dialog都是异步的,所以需要回调函数)。4.根据上面几步的设置,让Builder生成dialog对象。5.使用show()方法将dialog显示出来。对话框的使用方法通知4.3Notification概述Notification使用方法
Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、消息内容、送达时间这3项内容。以下就是通知的基本布局。Notification概述1.
标题
Title/Name2.
大图标
Icon/Photo3.
内容文字
4.
内容信息
MESSAGE5.
小图标SecondaryIcon6.
通知的时间Timestamp,默认为系统发出通知的时间,也可通过setWhen()来设置Notification通知所包含的元素:Notification概述状态通知栏主要涉及到2个类:
Notification和
NotificationManager
Notification为通知信息类,它里面对应了通知栏的各个属性NotificationManager
是状态栏通知的管理类,负责发通知、清除通知等操作。Notification概述步骤一:通过getSystemService()方法得到NotificationManager对象;步骤二:对Notification的一些属性进行设置比如:内容,图标,标题,相应Notification的动作进行处理等等;步骤三:通过NotificationManager对象的notify()方法来执行一个Notification的消息。Notification使用方法关联Notification使用方法Intent:意图,即告诉系统我要干什么,然后系统根据这个Intent做对应的事。如startActivity相当于发送消息,而Intent是消息的内容。PendingIntent:包装Intent,Intent是我们直接使用startActivity,startService或sendBroadcast启动某项工作的意图。不同的是由于不是马上调用,需要在下拉状态条触发的activity,所以采用的是PendingIntent,即点击Notification跳转启动到哪个Activity
学生空间App的界面优化任务3任务3界面布局常用资源深入界面布局界面布局基础五大常用布局方式常用资源深入界面布局基础1.1用户界面的概念及作用Android用户界面框架用户界面(UserInterface,UI)是系统和用户之间进行信息交换的媒介,实现信息的内部形式与人类可以接受形式之间的转换在计算机出现早期,批处理界面(1946-1968)和命令行界面(1969-1983)得到广泛的使用目前,流行图像用户界面(GraphicalUserInterface,GUI),采用图形方式与用户进行交互的界面未来的用户界面将更多的运用虚拟现实技术,使用户能够摆脱键盘与鼠标的交互方式,而通过动作、语言,甚至是脑电波来控制计算机用户界面的概念及作用设计手机用户界面应解决的问题需要界面设计与程序逻辑完全分离;根据不同型号手机的屏幕解析度、尺寸和纵横比各不相同,自动调整界面上部分控件的位置和尺寸,避免因为屏幕信息的变化而出现显示错误;能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用户界面,避免出现凌乱、拥挤的用户界面Android已经解决了前两个问题,使用XML文件描述用户界面,资源文件独立保存在资源文件夹中;对用户界面描述非常灵活,允许不明确定义界面元素的位置和尺寸,仅声明界面元素的相对位置。用户界面的概念及作用AndroidUIFramework采用视图树ViewTree模型Android用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树;Android系统会依据视图树的结构从上至下绘制每一个界面元素。每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制。01.界面布局基础Android用户界面框架界面布局界面布局Layout是用户界面结构的描述,定义了界面中所有的元素、结构和相互关系声明Android程序的界面布局有两种方法:使用XML文件描述界面布局在java代码中动态添加或修改界面布局用户既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式。Android用户界面框架五大常用布局方式1.2LinearLayoutFrameLayoutRelativeLayoutTableLayoutGridLayout线性布局(LinearLayout)是一种重要的界面布局,也是开发中经常使用到的一类布局在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列,不会换行如果垂直排列,则每行仅包含一个界面元素如果水平排列,则每列仅包含一个界面元素属性android:orientation,该属性的作用是指定本线性布局下的子视图排列方向horizontal表示水平,方向为从左向右vertical表示垂直,方向为从上向下LinearLayoutandroid:orientation设置为horizontal,效果如下所示:android:orientation设置为vertical,效果如下所示:LinearLayout在线性布局中,有个非常重要的属性gravity,这个属性用来指定组件内容的对齐方式gravity表示view横向和纵向的停靠位置,支持top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal几个属性值;可以同时指定多种对齐方式,如left|center_vertical表示出现在屏幕左边,并且垂直居中(如下例所示);LinearLayout<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"
android:gravity="bottom|center_horizontal"></LinearLayout>例:同时指定多种对齐方式LinearLayoutT3_1_LinearLayout任务描述:请使用“LinearLayout”布局方式,实现如下界面。LinearLayout方法一(通过XML方式布局):新建“res/layout/activity_main.xml”文件根据目标界面的排列方式,进行页面布局采用LinearLayout布局管理器子视图的排列方向设置为垂直添加第一个Button添加第二个Button……LinearLayout方法二(代码方式布局):1.添加整体布局LinearLayout2.设置整体布局的参数LayoutParams3.创建新控件4.设置新控件的参数LayoutParams5.添加到父控件
LinearLayout框架布局FrameLayoutFrameLayout是一种比较简单的布局,整个界面被当成一块空白区域,且子元素的位置是不能够指定的,默认放置在空白空间的左上角。如果有多个子元素,后放置的子元素将遮挡先放置的子元素可以通过layout_gravity设置元素的位置可以借助层级视图工具(HierarchyViewertool)查看所有的布局FrameLayout相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确定界面中所有元素的布局位置特点:能够最大程度保证在各种屏幕类型的手机上正确显示界面布局在众多布局中,推荐使用相对布局RelativeLayout属性描述值android:layout_centerInParent在父视图中正中心true/falseandroid:layout_centerHorizontal在父视图的水平中心线true/falseandroid:layout_centerVertical在父视图的垂直中心线true/falseandroid:layout_alignParentTop紧贴父视图顶部true/falseandroid:layout_alignParentBottom紧贴父视图底部true/falseandroid:layout_alignParentLeft紧贴父视图左部true/falseandroid:layout_alignParentRight紧贴父视图右部true/falseRelativeLayout布局中常用属性说明:RelativeLayout属性描述值android:layout_alignTop与指定视图顶部对齐视图ID,如“@id/***”android:layout_alignBottom与指定视图底部对齐视图ID,如“@id/***”android:layout_alignLeft与指定视图左部对齐视图ID,如“@id/***”android:layout_alignRight与指定视图右部对齐视图ID,如“@id/***”android:layout_above在指定视图上方视图ID,如“@id/***”android:layout_below在指定视图下方视图ID,如“@id/***”android:layout_toLeftOf在指定视图左方视图ID,如“@id/***”android:layout_toRightOf在指定视图右方视图ID,如“@id/***”RelativeLayout布局中常用属性说明:RelativeLayout属性描述值android:layout_marginBottom离某元素底边缘的距离具体像素值,如30dpandroid:layout_marginLeft离某元素左边缘的距离具体像素值,如30dpandroid:layout_marginRight离某元素右边缘的距离具体像素值,如30dpandroid:layout_marginTop离某元素上边缘的距离具体像素值,如30dpRelativeLayout布局中常用属性说明:RelativeLayoutT3_2_RelativeLayout任务描述:请使用“RelativeLayout”布局方式,实现如下界面RelativeLayout实现步骤如下:新建“res/layout/activity_main.xml”文件根据目标界面的排列方式,进行页面布局采用RelativeLayout布局管理器添加居中的按钮添加第二个按钮……RelativeLayout表格布局(TableLayout)是一种常用的界面布局,采用行、列的形式来管理子组件,通过指定行和列可以将界面元素添加至相应的网格中网格的边界对用户是不可见的表格布局还支持嵌套,可以将另一个表格布局放置在前一个表格布局的网格中,也可以在表格布局中添加其他界面布局,例如线性布局、相对布局等等
TableLayoutT3_3_TableLayout任务描述:请使用“TableLayout”布局方式,实现如下界面TableLayout步骤:新建“res/layout/activity_main.xml”文件根据目标界面的排列方式,进行页面布局采用TableLayout布局管理器添加第一行的两个控件添加第二行的两个控件……TableLayoutGridLayout网格布局android4.0版本后新增的GridLayout网格布局之前版本会考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题:不能同时在X,Y轴方向上进行控件的对齐。当多层布局嵌套时会有性能问题。不能稳定地支持一些支持自由编辑布局的工具。
GridLayoutGridLayout网格布局的使用GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。默认是水平布局,一个控件挨着一个控件从左到右依次排列,但是通过指定android:columnCount属性后,控件会自动换行进行排列。要指定某控件显示在固定的行或列,只需设置该子控件的android:layout_row和android:layout_column属性即可。GridLayout设置某控件跨越多行或多列,只需将该子控件的android:layout_rowSpan或者layout_columnSpan属性设置为数值,再设置其layout_gravity属性为fill即可。GridLayout布局由于其简单易用的特点,因此建议开发者在设计布局时,优先考虑使用,避免使用多层嵌套的布局。最佳实践GridLayoutT3_4_GridLayout任务描述:请使用“GridLayout”布局方式,实现如下界面。GridLayout实现步骤如下:新建“res/layout/activity_main.xml”文件根据目标界面的排列方式,进行页面布局采用GridLayout布局管理器添加第一幅图片,占两行在第一列第二列添加文字……GridLayout常用资源深入2Android常用资源简介样式drawable资源动态增加layout资源Android资源除了assets目录是与res同级外,其它资源均被放在res/目录下面该目录下面的资源文件夹并不是随意命名的,需要遵循严格的规范,否则编译生成R.java过程中会报类似“invalidresourcedirectoryname**”的错误提示,并且导致R.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川自贡市第一人民医院招聘医疗辅助岗人员18人备考题库含答案详解ab卷
- 2026北京航空航天大学可靠性与系统工程学院聘用编软件测试工程师F岗招聘2人备考题库附答案详解(a卷)
- 2026上半年贵州事业单位联考印江自治县招聘83人备考题库及答案详解(夺冠系列)
- 2026年安徽中澳科技职业学院单招职业技能测试模拟测试卷附答案解析
- 2026上海复旦大学计算与智能创新学院招聘专任高级工程师1人备考题库及参考答案详解(新)
- 2026中国农业科学院农业信息研究所科技情报分析与评估创新团队博士后研究人员招收1人备考题库含答案详解(培优)
- 漫画培训心得分享
- 2026上半年安徽事业单位联考黄山市祁门县招聘14人备考题库附参考答案详解(a卷)
- 2025沪昆高铁邵阳北站站前综合事务服务中心选调1人备考题库(湖南)附答案详解(研优卷)
- 2026中医药广东省实验室诚聘科研、管理、工程技术、产业发展各领域英才117人备考题库带答案详解ab卷
- 农村组长管理办法
- ISO12944-2-2024第2部分环境分类
- 皮下肿物切除术后护理
- T/CBMCA 037-2023混凝土电缆沟盖板
- 食堂转包协议书范本
- “住改商”登记利害关系业主同意证明(参考样本)
- DB42-T 2157-2023 乡镇生活污水治理设施运营维护管理技术规程
- 支气管哮喘防治指南(2024年版)解读
- 《UBM检查适应症》课件
- 安徽省合肥市庐阳区2024-2025学年数学三上期末质量检测试题含解析
- 文书模板-《更换业主委员会的申请》
评论
0/150
提交评论