Android给我们提供了丰富的组件库来创建丰富的UI效果,同时也提供了非常方便的拓展方法。通过集成Android的系统组件,我们可以非常方便的拓展现有功能,在系统组件的基础上创建新的功能,甚至可以自己自定义一个控件。实现Android系统控件所没有的功能。自定义控件作为Android中的一个非常重要的功能,一直以来都被初学者认为是代表高手的象征。其实,自定义View并没有想象中的那么难,与其说是在自定义一个View,不如说是在设计一个图形,只有站在一个设计者的角度上,才可以更好的创建自定义View。我们不能机械的记忆所绘图的API,而是要让这些API为你所用,结合现实中的绘图方法,甚至是Photoshop的技巧,才能设计出更好的自定义View。

适当的使用自定义View,可以丰富应用程序的体验效果,但滥用自定义View则会带来适得其反的效果。一个让用户觉得熟悉的控件,才是一个好的控件。如果一味的最求炫酷的效果而创建自定义View,则会让用户感觉华而不实。

而且,在系统原生控件可以实现功能的基础上,系统也提供了主题、图片资源、各种风格来创建丰富的UI。这些控件都是经过了Adroid一代代版本迭代后的产物。即使这样,如今的版本中,依然还存在不少Bug,更不要提我们自定义的View了。特别是现在Android ROM的多样性,导致Android的适配变得越来越复杂,很难保证自定义View在其他手机上也能达到你想要的效果。

当然,了解Android系统的自定义View的过程,可以帮助我们了解系统的绘图机制。同时,在适当的情况下也可以通过自定义View来帮助我们创建更加灵活的布局。

在自定义View时,我们通常会去重写onDraw()方法来绘制View的显示内容。如果该View还需要使用wrap_content属性,那么还需要必须重写onMeasure()方法。另外,通过自定义attrs属性,还可以设置新的属性配置值。

在View中通常有以下一些比较重要的回调方法。

● onFinishInflate(): 从XML加载组件后回调。

● onSizeChanged(): 组件大小改变时回调。

● onMeasure(): 回调该方法还进行测量。

● onLayout(): 回调该方法还确定显示的位置。

● onTouchEvent(): 监听到触摸事件时回调。

当然,创建自定义View的时候,并不需要重写所有的方法,只需要重新特定条件的回调方法即可。这也是Android控件架构灵活性的体现。

通常情况下,有以下三种方法来实现自动以的控件。

● 对现有控件进行拓展

● 通过组合来实现新的控件

● 重写View来实现全新的控件

 

更多相关文章

  1. java/android下的并发编程
  2. android 返回键与finish区别 onBackPressed
  3. Android(安卓)AsyncTask完全解析,带你从源码的角度彻底理解
  4. Android(安卓)线程优先级设置方法
  5. [Android] Android应用启动后自动创建桌面快捷方式
  6. Android(安卓)中Activity,Window和View之间的关系
  7. Android(安卓)Dialog使用举例
  8. 有关Android线程的学习
  9. Android(安卓)oom pthread_create (1040KB stack)分析及解决

随机推荐

  1. 转:Android电话系统之概述篇
  2. MAC下Android(安卓)Studio 1.4编译构建Co
  3. Android(安卓)启动引导页(动态生成底部导
  4. Android应用优化(7)数据库操作
  5. android 自定义控件(底部icon点击效果)
  6. Android开发之进程与线程
  7. pc机进入android的shell
  8. android的CursorLoader用法小结
  9. Android(安卓)判断用户2G/3G/4G移动数据
  10. android中的设计模式--观察者模式