Android提高十八篇之自定义Menu(TabMenu)

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

快要过年了,在这里先祝广大的技术宅兔年快乐!
用过UCWEB-Android版的人都应该对其特殊的menu有印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android的menu超过6项则缩略在[更多]里),本文参考网上的例子(作者:CoffeeCole,email:[email protected]),对例子进行简化以及封装,使其作为一个复合控件融入自己的framework。

先来看看本文程序运行的效果:

Android提高十八篇之自定义Menu(TabMenu)

TabMenu本身就是一个PopupWindow,PopupWindow上面放了两个GridView,第一个GridView就是分页标签,位于PopupWindow的顶部,第二个GridView是菜单,位于PopupWindow的主体。为了实现PopupWindow的弹出/退出的动画效果,本文使用了以下代码:

在工程的res文件夹里添加anim子目录,再新建文件popup_enter.xml:

新建文件popup_exit.xml:

在工程的values文件夹里新建文件popup_animation.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PopupAnimation" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/popup_enter</item>
<item name="android:windowExitAnimation">@anim/popup_exit</item>
</style>
</resources>

main.xml的源码如下:

TabMenu的封装类TabMenu.java的源码如下:

testTabMenu介绍了数据的定义以及TabMenu的使用,源码如下:

你可能感兴趣的:(android)