已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android应用开发 2 04常用控件介绍 Widget简介TextViewEditTextImageViewImageButtonListViewListAdapterVideoViewSurfaceView 3 Widget简介 Android开发应用除了程序应用 还有AppWidget应用 Widget 微件 是Android1 5版所引进的特性之一 AppWidget是在桌面上的一块显示信息的东西 通过单击AppWidget跳转到程序入口类 而系统自带的程序 典型的AppWidget是music 这个Android内置的音乐播放小程序 这是一个典型的AppWidget app应用 就是一个程序既可以通过AppWidget启动 也可以通过App启动 Widget简介 AppWidget就是一个AppWidgetProvider 一个UI界面显示 预先绑定了好多Intent 界面上的信息可以通过程序控制而改变 单击Widget上的控件只能激发发送一个Intent 或发出一个Service的启动通知 而AppWidgetProvider可以拦截这个Intent 而进行相应的处理 比如显示新的信息 一 AppWidget框架类1 AppWidgetProvider 继承自BroadcastRecevier 在AppWidget应用update enable disable和delete时接收通知 其中onUpdate onReceive是最常用到的方法 它们接收更新通知 2 AppWidgetProvderInfo 描述AppWidget的大小 更新频率和初始界面等信息 以XML文件形式存在于应用的res xml 目录下 3 AppWidgetManger 负责管理AppWidget 向AppwidgetProvider发送通知 4 RemoteViews 一个可以在其他应用进程中运行的类 向AppWidgetProvider发送通知 Widget简介 二 AppWidget框架的主要类介绍1 AppWidgetManger类bindAppWidgetId intappWidgetId ComponentNameprovider 通过给定的ComponentName绑定appWidgetIdgetAppWidgetIds ComponentNameprovider 通过给定的ComponentName获取AppWidgetIdgetAppWidgetInfo intappWidgetId 通过AppWidgetId获取AppWidget信息getInstalledProviders 返回一个List的信息getInstance Contextcontext 获取AppWidgetManger实例使用的上下文对象updateAppWidget int appWidgetIds RemoteViewsviews 通过appWidgetId对传进来的RemoteView进行修改 并重新刷新AppWidget组件 Widget简介 updateAppWidget ComponentNameprovider RemoteViewsviews 通过ComponentName对传进来的RemoeteView进行修改 并重新刷新AppWidget组件updateAppWidget intappWidgetId RemoteViewsviews 通过appWidgetId对传进来的RemoteView进行修改 并重新刷新AppWidget组件2 继承自AppWidgetProvider可实现的方法为如下 1 onDeleted Contextcontext int appWidgetIds 2 onDisabled Contextcontext 3 onEnabled Contextcontext 4 onReceive Contextcontext Intentintent Tip 因为AppWidgetProvider是继承自BroadcastReceiver所以可以重写onRecevie方法 当然必须在后台注册Receiver 5 onUpdate Contextcontext AppWidgetManagerappWidgetManager int appWidgetIds TextView 创建方法 1 导入TextView包importandroid widget TextView 2 在mainActivity java中声明一个TextViewprivateTextViewmTextView01 3 在main xml中定义一个TextView4 利用findViewById 方法获取main xml中的TextViewmTextView01 TextView findViewById R id TextView01 5 设置TextView标签内容mTextView01 setText HelloWorld EditText EditText相当于很多程序中的TextField 是一个可以让用户输入文本的组件 是用户和程序之间用于传输数据的纽带 通过它用户可以把数据传送给Android程序 示例代码 EditText EditText继承自TextView 所以拥有TextView的所有属性 另外 EditText还有属于自己的属性 android hint是EditText的默认提示文字 一般用于提示用户输入 android textColorHint是提示文字的颜色 如果不设置 就为默认提示颜色 android maxLength表示最大输入长度 android password true 就可以实现这一密码输入功能 android numeric signed 表示输入数字的类型 可以是Integer 一共有三种分别为integer 正整数 signed 带符号整数 和decimal 浮点数 android phoneNumber true 用于专门输入电话号码的文本框也是大有用途 有了他我们对是否是电话号码的校验就容易的多了 因为字符是正确的 只要校验格式 通过设置android phoneNumber true 就可以把EditText变成只接受电话号码输入的文本框 连软键盘都已经变成拨号专用软键盘了 所以不用再担心输入其他字符了 ImageView ImageView是Android程序中经常用到的组件 它将一个图片显示到屏幕上 在Android中插入图片 1 导入图片到资源将图片拖拽到项目res drawable开头的3个文件夹下 他们分别代表了高 中 低分辨度的图片 Android读取图片时自动优化 选用合适的一个图片显示 比如高分辨率可以存放128 128的图片 低分辨率可以存放32 32的图片 ImageView 2 在XML布局文件中建立ImageView 3 运行程序 查看效果 ImageView ImageView可以设置图片的可见性 设置颜色 设置图片指定大小 1 publicvoidsetVisibility intvisibility visibilityOneofVISIBLE INVISIBLE orGONE但是在调用此方法的时候image setVisibility visibility 其中visibility是int型的参数 对应上面 VISIBLE 0 x00000000 INVISIBLE 0 x00000004 GONE 0 x00000008 即 image setVisibility 0 x00000000 表示显示 image setVisibility 0 x00000004 表示隐藏 image setVisibility 0 x00000008 表示view不存在 ImageView 2 设置颜色的不同方法color rgb 255 255 255 color RED color parseColor colorString 其中colorString可以是 RRGGBB AARRGGBB red blue green black white gray cyan magenta yellow lightgray darkgray 等3 设置图片指定大小protectedBitmapscaleImg Bitmapbm intnewWidth intnewHeight 图片源 Bitmapbm BitmapFactory decodeStream getResources openRawResource id 获得图片的宽高intwidth bm getWidth intheight bm getHeight ImageView 设置想要的大小intnewWidth1 newWidth intnewHeight1 newHeight 计算缩放比例floatscaleWidth float newWidth1 width floatscaleHeight float newHeight1 height 取得想要缩放的matrix参数Matrixmatrix newMatrix matrix postScale scaleWidth scaleHeight 得到新的图片Bitmapnewbm Bitmap createBitmap bm 0 0 width height matrix true returnnewbm ImageView 调用 获得18 18的图片Bitmapbm BitmapFactory decodeStream getResources openRawResource R drawable icon BitmapnewBm scaleImg bmImg 18 18 imageView setImageBitmap newBm android scaleType android scaleType是控制图片如何resized moved来匹对ImageView的size ImageView ImageView ScaleType android scaleType值的意义区别 CENTER center按图片的原来size居中显示 当图片长 宽超过View的长 宽 则截取图片的居中部分显示CENTER CROP centerCrop按比例扩大图片的size居中显示 使得图片长 宽 等于或大于View的长 宽 CENTER INSIDE centerInside将图片的内容完整居中显示 通过按比例缩小或原来的size使得图片长 宽等于或小于View的长 宽FIT CENTER fitCenter把图片按比例扩大 缩小到View的宽度 居中显示FIT END fitEnd把图片按比例扩大 缩小到View的宽度 显示在View的下部分位置FIT START fitStart把图片按比例扩大 缩小到View的宽度 显示在View的上部分位置FIT XY fitXY把图片不按比例扩大 缩小到View的大小显示MATRIX matrix用矩阵来绘制 动态缩小放大图片来显示 ImageButton 下面主要讲的就是imagebutton按钮 切记给按钮加图片的话 图片不要太大 最好是PNG格式的 要不效果就不是那么好了 示例代码 ImageButton ImageButton在Android的运用非常灵活 既可以在 java中实现 也可以在 xml中实现 但相比较而言在 xml中实现更有利于代码的改动 现分别讲述以上两种实现方式 1 一种是在代码里自己的图片m ImageButton setImageDrawable getResources getDrawable R drawable my button 系统自带的图片m ImageButton setImageDrawable getResources getDrawable Android R drawable sym call incoming 2 一种是在XML文件里自己的图片Android src drawable ic media play 系统自带的图片Android src android drawable sym call incoming ImageButton 3 指定按钮的背景图 有state pressed和state focused 分别代表按下去和焦点停留 用方向键等控制 时的状态默认都是false 下面可以实现按下去时的背景图 在main xml里添加 Android background drawable button add x 一行 在res drawable下添加一个button add x xml的文件 ListView 在android开发中ListView是比较常用的组件 它以列表的形式展示具体内容 并且能够根据数据的长度自适应显示 示例代码 ListView 列表的显示需要三个元素 1 ListVeiw用来展示列表的View 2 适配器 用来把数据映射到ListView上的中介 3 数据 具体的将被映射的字符串 图片 或者基本组件 ListAdapter 根据列表的适配器类型 列表分为三种 ArrayAdapter SimpleAdapter和SimpleCursorAdapter 1 ArrayAdapter其中以ArrayAdapter最为简单 只能展示一行字 SimpleAdapter有最好的扩充性 可以自定义出各种效果 SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合 可以方便的把数据库的内容以列表的形式展示出来 ArrayAdapter Contextcontext inttextViewResourceId Listobjects 需要一个连接ListView视图对象和数组数据的适配器来完成两者的适配工作 ArrayAdapter的构造需要三个参数 依次为this 布局文件 注意这里的布局文件描述的是列表的每一行的布局 用setAdapter 完成适配的最后工作 ListAdapter 2 SimpleCursorAdaptersdk的解释是这样的 AneasyadaptertomapcolumnsfromacursortoTextViewsorImageViewsdefinedinanXMLfile Youcanspecifywhichcolumnsyouwant whichviewsyouwanttodisplaythecolumns andtheXMLfilethatdefinestheappearanceoftheseviews 简单的说就是方便把从游标得到的数据进行列表显示 并可以把指定的列映射到对应的TextView中 ListAdapter 下面的程序是从电话簿中把联系人显示到列表中 先在通讯录中添加一个联系人作为数据库的数据 然后获得一个指向数据库的Cursor并且定义一个布局文件 当然也可以使用系统自带的 publicclassMyListView2extendsActivity privateListViewlistView privateListdata newArrayList OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState listView newListView this Cursorcursor getContentResolver query People CONTENT URI null null null null startManagingCursor cursor ListAdapterlistAdapter newSimpleCursorAdapter this android R layout simple expandable list item 1 cursor newString People NAME newint android R id text1 listView setAdapter listAdapter setContentView listView ListAdapter Cursorcursor getContentResolver query People CONTENT URI null null null null 先获得一个指向系统通讯录数据库的Cursor对象获得数据来源 startManagingCursor cursor 我们将获得的Cursor对象交由Activity管理 这样Cursor的生命周期和Activity便能够自动同步 省去自己手动管理Cursor SimpleCursorAdapter构造函数前面3个参数和ArrayAdapter是一样的 最后两个参数 一个包含数据库的列的String型数组 一个包含布局文件中对应组件id的int型数组 其作用是自动的将String型数组所表示的每一列数据映射到布局文件对应id的组件上 上面的代码 将NAME列的数据一次映射到布局文件的id为text1的组件上 注意 需要在AndroidManifest xml中如权限 运行后效果如下图 ListAdapter ListAdapter 3 SimpleAdaptersimpleAdapter的扩展性最好 可以定义各种各样的布局出来 可以放上ImageView 图片 还可以放上Button 按钮 CheckBox 复选框 等等 下面的代码都直接继承了ListActivity ListActivity和普通的Activity没有太大的差别 不同就是对显示ListView做了许多优化 方面显示而已 下面的程序是实现一个带有图片的类表 首先需要定义好一个用来显示每一个列内容的xmlvlist xml ListAdapter ListAdapter 下面是实现代码 publicclassMyListView3extendsListActivity privateListdata newArrayList OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState SimpleAdapteradapter newSimpleAdapter this getData R layout vlist newString title info img newint R id title R id info R id img setListAdapter adapter privateList getData List list newArrayList Mapmap newHashMap map put title G1 map put info google1 map put img R drawable i1 list add map ListAdapter map newHashMap map put title G2 map put info google2 map put img R drawable i2 list add map map newHashMap map put title G3 map put info google3 map put img R drawable i3 list add map returnlist 使用simpleAdapter的数据用一般都是HashMap构成的List list的每一节对应ListView的每一行 HashMap的每个键值数据映射到布局文件中对应id的组件上 因为系统没有对应的布局文件可用 我们可以自己定义一个布局vlist xml 下面做适配 new一个SimpleAdapter参数一次是 this 布局文件 vlist xml HashMap的title和info img 布局文件的组件id title info img 布局文件的各组件分别映射到HashMap的各元素上 完成适配 运行效果如下图 ListAdapter VideoView 在Android上可以通过VideoView和SurfaceView实现视频播放功能 可以播放本地视频也可以播放网络视频 通过VideoView播放SDCard上的视频示例 先看看实现的效果 1 VideoActivity java程序入口类 packagenet androidla video importjava io File importandroid app Activity importandroid os Bundle importandroid os Environment importandroid widget MediaController importandroid widget VideoView publicclassVideoActivityextendsActivity OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState setContentView R layout main finalVideoViewvv VideoView findViewById R id vv vv setVideoPath Environment getExternalStorageDirectory File separator 1 3gp vv setMediaController newMediaController VideoActivity this vv requestFocus vv start VideoView 2 res layout main xmlVideoView控件的使用 VideoView SurfaceView 通过SurfaceView播放SDCard上的视频和网络视频 播放效果 1 SurfaceViewActivity java程序入口类 通过setDataSource 方法可以播放本地视频和网络视频 参数是视频的地址 packagenet androidla surfaceview importandroid app Activity importandroid media AudioManager importandroid media MediaPlayer importandroid media MediaPlayer OnBufferingUpdateListener importandroid media MediaPlayer OnCompletionListener importandroid media MediaPlayer OnPreparedListener Uri importandroid os Bundle importandroid view SurfaceHolder importandroid view SurfaceView importandroid widget Toast publicclassSurfaceViewActivityextendsActivityimplementsOnBufferingUpdateListener OnCompletionListener OnPreparedListener SurfaceHolder Callback privateintwidth 0 privateintheight 0 privateMediaPlayermp null privateSurfaceViewsurfaceView null privateSurfaceHolderholder null SurfaceView SurfaceView OverridepublicvoidonCreate BundlesavedInstanceState super onCreate savedInstanceState setContentView R layout main surfaceView SurfaceView findViewById R id surfaceView holder surfaceView getHolder holder addCallback this holder setType SurfaceHolder SURFACE TYPE PUSH BUFFERS publicvoidplayVideo try mp newMediaPlayer mp setDataSource Environment getExternalStorageDirectory File separator 1 3gp mp setDataSource this Uri parse http 192 168 1 104 9080 temp 1 3gp mp setAudioStreamTy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美国商标注册申请代理合同
- 当归购销合同
- 印花机挡车工安全培训水平考核试卷含答案
- 安全事故报告表
- 换罐清渣工冲突管理考核试卷含答案
- 经济昆虫养殖员创新意识测试考核试卷含答案
- 压缩机装配调试工安全应急强化考核试卷含答案
- 碳五分离装置操作工基础管理测试考核试卷含答案
- 木焦油工技术综合测试考核试卷含答案
- 计算机程序设计员持续改进知识考核试卷含答案
- 四川蜀道铁路投资集团有限责任公司2026年秋季校园招聘笔试备考题库及答案详解
- 《技术学科知识与教学能力》(高级中学)全套备考核心资料(含真题解析)
- 2026年秋季七年级生物上册苏教版教学计划
- 化工园区公共管廊钢结构工程竣工验收报告
- 河北省2026中考语文作文真题解读及范文
- 2026年养老机构管理人员综合能力测试题
- 数据中心运维管理SOP文件
- 《外婆的澎湖湾》课件2025-2026学年湘艺版三年级下册音乐
- 8D报告培训教材
- 《网络与新媒体营销》课件 第四章 新媒体营销思维
- 防范鼠疫应急预案(3篇)
评论
0/150
提交评论