android自定义控件之模仿优酷菜单

去年的优酷HD版有过这样一种菜单,如下图:

应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋转进入,点击二级菜单的menu键,三级菜单旋转进入,再次点击二级菜单的旋转键,三级菜单又会旋转退出,这时再点击一级菜单,二级菜单退出,最后点击实体menu键,一级菜单退出。

总体来说实现这样的功能: (1)点击实体menu键时,如果界面上有菜单显示,不管有几个,全部依次退出,如果界面上没有菜单显示,则显示一级菜单。 (2)点击一级菜单的home键时,如果此时界面只有一级菜单,则显示二级菜单,否则让除了一级菜单外的菜单全都依次退出。 (3)点击二级菜单的menu键时,如果三级菜单已经显示,则让它旋转退出,如果三级菜单未显示则让它旋转进入。

好了,今天我们主要实现上述效果。

先来看布局文件

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”tools:context=”com.example.customwidget.MainActivity” ><RelativeLayoutandroid:id=”@+id/menu_level1″android:layout_width=”100dp”android:layout_height=”50dp”android:layout_alignParentBottom=”true”android:layout_centerHorizontal=”true”android:background=”@drawable/level1″ ><ImageButtonandroid:id=”@+id/level1_home”android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_centerInParent=”true”android:layout_marginBottom=”10dp”android:background=”@drawable/icon_home”android:onClick=”myClick” /></RelativeLayout><RelativeLayoutandroid:id=”@+id/menu_level2″android:layout_width=”200dp”android:layout_height=”100dp”android:layout_alignParentBottom=”true”android:layout_centerHorizontal=”true”android:background=”@drawable/level2″ ><ImageButtonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_alignParentBottom=”true”android:layout_marginBottom=”10dp”android:layout_marginLeft=”15dp”android:background=”@drawable/icon_search” /><ImageButtonandroid:id=”@+id/level2_menu”android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_centerHorizontal=”true”android:layout_marginTop=”7dp”android:background=”@drawable/icon_menu”android:onClick=”myClick” /><ImageButtonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_alignParentBottom=”true”android:layout_alignParentRight=”true”android:layout_marginBottom=”10dp”android:layout_marginRight=”15dp”android:background=”@drawable/icon_myyouku” /></RelativeLayout><RelativeLayoutandroid:id=”@+id/menu_level3″android:layout_width=”320dp”android:layout_height=”162dp”android:layout_alignParentBottom=”true”android:layout_centerHorizontal=”true”android:background=”@drawable/level3″ ><ImageButtonandroid:id=”@+id/level3_channel1″android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_alignParentBottom=”true”android:layout_marginBottom=”10dp”android:layout_marginLeft=”12dp”android:background=”@drawable/channel1″ /><ImageButtonandroid:id=”@+id/level3_channel2″android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_above=”@id/level3_channel1″android:layout_marginBottom=”17dp”android:layout_marginLeft=”-5dp”android:layout_toRightOf=”@id/level3_channel1″android:background=”@drawable/channel2″ /><ImageButtonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_above=”@id/level3_channel2″android:layout_marginBottom=”15dp”android:layout_marginLeft=”13dp”android:layout_toRightOf=”@id/level3_channel2″android:background=”@drawable/channel3″ /><ImageButtonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_centerHorizontal=”true”android:layout_marginTop=”10dp”android:background=”@drawable/channel4″ /><ImageButtonandroid:id=”@+id/level3_channel7″android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_alignParentBottom=”true”android:layout_alignParentRight=”true”android:layout_marginBottom=”10dp”android:layout_marginRight=”12dp”android:background=”@drawable/channel7″ /><ImageButtonandroid:id=”@+id/level3_channel6″android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_above=”@id/level3_channel7″android:layout_marginBottom=”17dp”android:layout_marginRight=”-5dp”android:layout_toLeftOf=”@id/level3_channel7″android:background=”@drawable/channel6″ /><ImageButtonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_above=”@id/level3_channel6″android:layout_marginBottom=”15dp”android:layout_marginRight=”13dp”android:layout_toLeftOf=”@id/level3_channel6″android:background=”@drawable/channel5″ /></RelativeLayout></RelativeLayout>如果说人生啊,尝过一回痛快淋漓的风景,

android自定义控件之模仿优酷菜单

相关文章:

你感兴趣的文章:

标签云: