Android实现爆炸式菜单按钮弹出效果
最近项目要使用到点击一个按钮弹出多个按钮的效果,在试了几个类库后感觉不是很理想,所以自己代码实现了一个,下图所示:
成都创新互联主要从事成都网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务溪湖,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

实现原理很简单,就是利用android原声动画效果,当点击中心按钮时弹出其余按钮。闲话少叙,代码如下。
第一步:activity_main.xml 很简单,也就是五个相同位置的按钮
<?xml version="1.0" encoding="utf-8"?>
第二步:MainActivity
package com.example.boombuttons;
import java.util.ArrayList;
public class MainActivity extends Activity implements OnClickListener{
// 中心按钮
private ImageButton button;
// 四个子按钮
private ImageButton button1;
private ImageButton button2;
private ImageButton button3;
private ImageButton button4;
// 子按钮列表
private List buttonItems = new ArrayList(3);
// 标识当前按钮弹出与否,1代表已经未弹出,-1代表已弹出
private int flag = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 实例化按钮并设立监听
button = (ImageButton)findViewById(R.id.button);
button.setOnClickListener(this);
button1 = (ImageButton)findViewById(R.id.button1);
button2 = (ImageButton)findViewById(R.id.button2);
button3 = (ImageButton)findViewById(R.id.button3);
button4 = (ImageButton)findViewById(R.id.button4);
// 将子按钮们加入列表中
buttonItems.add(button1);
buttonItems.add(button2);
buttonItems.add(button3);
buttonItems.add(button4);
}
/**
* 按钮移动动画
* @params 子按钮列表
* @params 弹出时圆形半径radius
*/
public void buttonAnimation(List buttonList,int radius){
for(int i=0;i 第三步:Util.java 工具类,写了一个静态方法,用于通过按钮个数和按钮在列表中的索引计算其弹出角度。
public class Util {
/**
* 返回每个按钮应该出现的角度(弧度单位)
* @param index
* @return double 角度(弧度单位)
*/
public static double getAngle(int total,int index){
return Math.toRadians(90/(total-1)*index+90);
}
}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
分享题目:Android实现爆炸式菜单按钮弹出效果
新闻来源:http://www.jxjierui.cn/article/jppgpp.html


咨询
建站咨询
