首页 > 代码库 > Android卫星菜单:android-satellite-menu

Android卫星菜单:android-satellite-menu

android-satellite-menu实现点击主按钮,会弹出多个围绕着主按钮排列的子按钮,从而形成一个卫星弹出式菜单。子按钮弹出和消失的动画效果都很棒。这种弹出式菜单按钮应用在Path2.0中。

Android卫星菜单:android-satellite-menu

用法

在你的view xml中添加组件定义,如下示例:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:sat="http://schemas.android.com/apk/res/android.view.ext"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <android.view.ext.SatelliteMenu
        android:id="@+id/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|left"
        android:layout_margin="8dp"
        sat:satelliteDistance="170dp"
        sat:mainImage="@drawable/ic_launcher"
        sat:totalSpacingDegree="90"
        sat:closeOnClick="true"
        sat:expandDuration="500"/>
 
</FrameLayout>

属性有:

  • satelliteDistance  The distance of items from the center button
  • totalSpacingDegree  The degree between the first and the last item.
  • closeOnClick  Defines if the menu shall collapse after clicking on a menu item.
  • expandDuration  The duration of expand and collapse operations in milliseconds.

当在你的View XML定义之后,可按以下代码添加子菜单:

SatelliteMenu menu = (SatelliteMenu) findViewById(R.id.menu);
List<SatelliteMenuItem> items = new ArrayList<SatelliteMenuItem>();
items.add(new SatelliteMenuItem(4, R.drawable.ic_1));
items.add(new SatelliteMenuItem(4, R.drawable.ic_3));
items.add(new SatelliteMenuItem(4, R.drawable.ic_4));
items.add(new SatelliteMenuItem(3, R.drawable.ic_5));
items.add(new SatelliteMenuItem(2, R.drawable.ic_6));
items.add(new SatelliteMenuItem(1, R.drawable.ic_2));




Each menu item takes the ID of the item and the drawable resource for the item.

In order to listen clicks on items:

menu.setOnItemClickedListener(new SateliteClickedListener() {
  public void eventOccured(int id) {
    Log.i("sat", "Clicked on " + id);
  }
});



项目主页: http://www.open-open.com/lib/view/home/1390737573132

Android卫星菜单:android-satellite-menu