android-satellite-menu实现点击主按钮,会弹出多个围绕着主按钮排列的子按钮,从而形成一个卫星弹出式菜单。子按钮弹出和消失的动画效果都很棒。
用法
在你的view xml中添加组件定义,如下示例:
</FrameLayout><?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:totalSpacingDegree="90"
sat:closeOnClick="true"
sat:expandDuration="500"/>
</FrameLayout>
SatelliteMenu属性有:
satelliteDistance
子菜单图标到主菜单图标的距离totalSpacingDegree
子菜单展开之后所占的角度closeOnClick
子菜单被单击之后是否收回expandDuration
子菜单展开收回动画持续时间
当在你的View XML定义之后,可按以下代码添加子菜单:
SatelliteMenu menu = (SatelliteMenu) findViewById(R.id.menu);
List<SatelliteMenuItem> items = new ArrayList<SatelliteMenuItem>();
items.add(new SatelliteMenuItem(1, R.drawable.ic_1));
items.add(new SatelliteMenuItem(3, R.drawable.ic_3));
items.add(new SatelliteMenuItem(4, R.drawable.ic_4));
items.add(new SatelliteMenuItem(5, R.drawable.ic_5));
items.add(new SatelliteMenuItem(6, R.drawable.ic_6));
items.add(new SatelliteMenuItem(2, R.drawable.ic_2));
SatelliteMenuItem构造方法有两个参数:item的id(用于唯一标示一个item),item图标的资源id
SatelliteMenuItem被单击时的事件处理:
menu.setOnItemClickedListener(new SateliteClickedListener() {
public void eventOccured(int id) {
Log.i("sat", "Clicked on " + id);
}
});
eventOccured()方法参数即当前被单击的StaelliteMenuItem的id.
demo下载地址:http://download.csdn.net/detail/ee3a1111/6939543