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. 13、Android重写系统返回键
  2. Android中使用Handler机制更新UI的两种方法
  3. 简单控件的UI界面设计
  4. Android中设置关键字高亮的方法
  5. 第十二节(android常用控件三)
  6. 在android获取root权限的方法^_^。
  7. android控件相对布局

随机推荐

  1. Android(安卓)Scroller简介 ---- 界面滚
  2. MultiDex源码分析
  3. 十款 Material Design 风格的 Android(安
  4. 关于处理器架构的一点儿知识
  5. android adb usb配置
  6. android Activity如何横屏显示?如何解决Ac
  7. android 主流浏览器对 scheme 打开本地 A
  8. Android开发艺术探索笔记之Activity
  9. 安卓系统架构,Activity生命周期
  10. Flutter基础(十三)Flutter与Android的相互