栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android实现爆炸式菜单按钮弹出效果

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android实现爆炸式菜单按钮弹出效果

最近项目要使用到点击一个按钮弹出多个按钮的效果,在试了几个类库后感觉不是很理想,所以自己代码实现了一个,下图所示:

实现原理很简单,就是利用android原声动画效果,当点击中心按钮时弹出其余按钮。闲话少叙,代码如下。

第一步:activity_main.xml 很简单,也就是五个相同位置的按钮



 
 
 
 
 



第二步: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); 
 }
 
 public void buttonAnimation(List buttonList,int radius){
  for(int i=0;i

第三步:Util.java 工具类,写了一个静态方法,用于通过按钮个数和按钮在列表中的索引计算其弹出角度。

public class Util {
 
 public static double getAngle(int total,int index){
  return Math.toRadians(90/(total-1)*index+90);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/156215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号