自定义控件及语法_第1页
自定义控件及语法_第2页
自定义控件及语法_第3页
自定义控件及语法_第4页
自定义控件及语法_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

自定义控件讲师:练霓裳黑马训练营Android控件基本介绍黑马训练营Android本身提供了很多控件 比如我们常用的有文本控件TextView和EditText;按钮控件Button和ImageButton状态开关按钮ToggleButton单选复选按钮RadioButton和RadioGroup单选按钮和复选按钮CheckBox图片控件ImageView时钟控件AnalogClock和DigitalClock进度条ProgressBar和日期与时间选择控件DatePicker和TimePicker等。但是这些控件并不能满足我们所有的要求。有的时候我们必须要自己定义控件来满足我们的要求。文本控件TextView

和EditText黑马训练营TextView

控件继承自View

类。TextView控件的功能是向用户显示文本内容同时可选择性让用户编辑文本。其中

TextView不允许编辑。EditText控件EditText

控件继承自TextView。EditText与

TextView

最大的不同是EditText是可以编辑的按钮控件Button和ImageButton黑马训练营

Button控件继承自TextView类Button的用法比较简单主要是为Button控件设置View.OnClickListener.监听器并在监听器的实现代码中编写按钮按下事件的处理代码。ImageButton

控件ImageButton

继承自ImageView。ImageButton

与Button最大的区别是ImageButton没有text

属性 既按钮中将显示图片而不是文本。ImageButton

控件中设置显示图片可以通过android:src属性 也可以通过setImageResurce(int

)方法来实现状态开关按钮ToggleButton黑马训练营ToggleButton

控件是继承自

Button。ToggleButton

的状态只能是选中和未选中 并且需要为不同的状态设置不同的显示文本。除了继承自父类的一些属性和方法之外 ToggleButton

也具有一些自己的

ToggleButton

属性。单选按钮和复选按钮CheckBox

和RadioButton黑马训练营

CheckBox和RadioButton都只有选中和未选中两种状态,可以通过checked属性来设置.不同的是RadioButton是单选按钮,需要编制到一个

RadioGroup中同一时刻一个RadioGroup中只能有一个按钮处于选中状态.CheckBox和RadioButton都是继承自CompoundButton中继承了一些成员.图片控件ImageView黑马训练营ImageView控件负责显示图片,其图片来源既可以是资源文件的id,也可以是Drawable对象或Bitmap对象,还可以是Content

Provider的Uri.时钟控件AnalogClock

和DigitalClock黑马训练营AnalogClock继承自ViewAnalogClock

控件显示模拟时钟 只显示时针和分针DigeitalClock继承自TextView。DigetalClock

显示数字时钟 可精确到秒。

时钟控件比较简单

只需要在布局文件中声明控件即可。日期与时间选择控件DatePicker

和TimePicker黑马训练营DatePicker

继承自FrameLayout类 日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其进行选择。如果要捕获用户修改日期选择控件中数据的事件 需要为DatePicker

添加onDateChangedListener

监听器。TimePicker

同样继承自FrameLayout

类。时间选择控件向用户显示一天中的时间 可以为24小时制 可以为AM/PM制 并允许用户进行选择。如果要捕获用户修改时间数据的事件 便需要为TimePicker添加OnTimeChangedListener

监听器继承已有控件实现自定义控件黑马训练营通过对android本身提供的控件的代码进行研究,android中控件都是继承

view类来实现,通过重写ondraw方法来绘制我们所需要的控件.通过这个我们得到两点提示:我们可以在已有的控件的基础上,通过重写相关方法来实现我们的需求.继承view类或viewgroup类,来绘制我们所需要的控件.一般来讲,通过继承已有的控件,来自定义控件要简单一点.继承已有控件实现自定义控件黑马训练营继承已有控件实现自定义控件黑马训练营继承已有控件实现自定义控件黑马训练营继承已有控件实现自定义控件custom_progressbar.xml黑马训练营继承已有控件实现自定义控件黑马训练营优酷菜单实现步骤:1

使用相对布局完成显示2

设置第二层菜单点击事件3

设置动画4

设置第一层菜单点击事件5设置动画6

根据是否显示第三层activity_main.xmlMainActivity.java黑马训练营黑马训练营优酷菜单//创建一个旋转动画对象RotateAnimation

ra

=

new

RotateAnimation(0,

//开始的角度-180,

//结束的角度Animation.RELATIVE_TO_SELF,//x轴的参照物:参照自己0.5f,//x轴的值为:自己宽度的一半

Animation.RELATIVE_TO_SELF,//y轴的参照物:参照自己

1f);//y轴的值为:整个高度ra.setDuration(500);//设置时间ra.setFillAfter(true);//设置动画执行完毕时,停留在结束的位置上.//设置动画的监听ra.setAnimationListener(new

MyAnimationListener());黑马训练营优酷菜单/**当按键按下时回调此方法@param

keyCode

按下的按钮的代码值如果等于82,就是菜单键*/@Overridepublic

boolean

onKeyDown(int

keyCode,

KeyEvent

event)

{if(keyCode==KeyEvent.KEYCODE_MENU){//当前是菜单键//判断是否有动画正在执行中,如果有,直接returnif(Utils.animationRunningCount!=0){//有动画执行,不可以执行动画return

true;//消耗此点击事件}优酷广告头分析:从效果看android使用一个可以滑动的控件ViewPager,再使用了一些原生控件//设置当页面改变的监听事件mViewPager.setOnPageChangeListener(this);使用xmlshape来创建圆点这些点是动态变化的数量:根据数据的多少添加切换:随着ViewPager进行切换activity_main.xmlbg_select.xmlbg.xmlbg_normal.xml黑马训练营PagerAdapterinstantiateItem(ViewGroup,

int)

加载itemdestroyItem(ViewGroup,

int,

Object)

销毁对象getCount()

定义ViewPager的总长度的isViewFromObject(View,Object)

判断是否使用缓存,如果true,

使用缓存MainActivity.java黑马训练营PagerAdapter黑马训练营ViewPagerViewPager是android3.0加入的一个控件黑马训练营PagerAdapter改变监听黑马训练营自动提示框分析:1

从显示效果可以看出来,布局就是由

EditText和ListView来组合完成,但是我们是在输入内容后ListView才出现,可以使用PopupWindow来动态的展示下面的内容实现步骤:1

完成基本界面2

给EditText设置文本改变监听3

弹出PopupWindowitem.xmlactivity_main.xmlMainActivity.java黑马训练营自动提示框黑马训练营可以滑动的开关分析:从效果来观察该控件没有使用andro

温馨提示

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

最新文档

评论

0/150

提交评论