自定义View学习--定义View流程和注意事项

2016-05-05  本文已影响417人  funnyzhao

参考了Google官方培训课程鸿洋大神的博客,下面进入正题


Googl官方建议

·遵守Android标准规则。
·提供自定义的风格属性值并能够被Android XML Layout所识别
·发出可访问的事件。
·能够兼容Android的不同平台。

常用实现2种方式

·继承View
·拓展现有控件(继承系统提供的UI组件)

自定义View的流程

1.继承View或者继承View的一个实现类


2.定义自定义属性

请注意:如果你的view是一个inner class,你必须指定这个view的outer class.同样的,如果PieChart有一个inner class叫做PieView。为了使用这个类中自设的属性,你应该使用com.example.customviews.charting.PieChart$PieView.

TypedArray对象是一个共享资源,必须被在使用后进行回收。

注意点:在setShowText方法里面有调用invalidate()) and requestLayout()). 这两个调用是确保稳定运行的关键。当view的某些内容发生变化的时候,需要调invalidate来通知系统对这个view进行redraw,当某些元素变化会引起组件大小变化时,需要调用requestLayout方法。调用时若忘了这两个方法,将会导致hard-to-find bugs。


3.需要warp_content属性时:在onMeasure()方法中判断测量模式为AT_MOST时,设定一个值。


4.实现onDraw()方法:在这里绘制

上一篇 下一篇

猜你喜欢

热点阅读