前言
Android自带的组件比较丑陋(个人感觉),自己写组件比较复杂,而且必须熟悉android应用层开发的一些机制,如绘制、回调,所以非迫不得已的情况下还是不要自己写组件,因为怕考虑不周全导致譬如性能或异常方面的问题,你自己写也会耗费不少时间。个人觉得采用第三方UI是个不错的选择,尤其是你需要比较复杂的UI组件,而且又比较赶项目的时候。
优缺点
当然第三方UI组件不全是优秀的,个人总结如下:(当然远远不止这些,欢迎讨论)
优点:扩展性好,比较通用(当然也有写得比较烂的,这里不讨论),易用、开发速度快。
缺点:大多数并没有google官方的组件那么稳定,甚至有些小问题。一旦有问题调试起来非常麻烦。性能有待提高。
分享几个优秀开源第三方项目
1、GreenDroid
demos效果图:
使用体会
个人感觉这个项目使用起来并不方便,尤其是你用他提供的Activity的时候必须得继承GDApplication。(开始不知道这些,调试了很久)。其实UI界面也是很一般,而且里面很大部分功能都可以在其他的第三方库里面找到类似的。里面的ActionBar默认样式很一般,有待美化。
需要更多了解的话你可以到官方去看看:http://android.cyrilmottier.com/?p=240
2、ActionBarSherlock
demos效果图:
个人体会
这个项目的UI很漂亮,使用也很方便,demos中提供了很好的参考实例。能在低版本上实现ActionBar(系统的ActionBar在3.0以上才有)。
需要更多了解的话你可以到官方去看看:http://actionbarsherlock.com/
3、SlidingMenu
demos效果图:
个人体会
你需要用推拉式的效果,这是个不错的项目。不过你直接用可能没法用,它是依赖于ActionBarSherlock项目的。代码中也有问题,需要把SlidingFragmentActivity 这个类改成继承SherlockFragmentActivity(也就是ActionBarSherlock中的类),因为这个问题我也是找了很久都没有解决(一直没有怀疑过代码问题),后来实在不行就看看代码才发现的。
需要更多了解的话你可以到官方去看看:https://github.com/jfeinstein10/SlidingMenu
注意事项
被引用的项目必须放在和引用项目在同一个硬盘分区中,如你新建的项目Test,需要引用ActionBarSherlock,那么Test和ActionBarSherlock需要放在同一个分区,即同时在D盘或E盘之类的。之前也是因为这个问题花了不少时间,细节很重要啊。
总结
当然优秀的UI开源项目远不止这几个,但是这几个非常实用也非常有名。其他还有android-misc-widgets、QuickAction、viewbadger、viewflow...太多了。根据个人需要去了解吧。好了到此为止,如果有需要的话也可以把刚刚说的几个UI组件整理一下。
PS:文中有不妥之处请读者指出,欢迎交流。