Android菜单(动画菜单、360波纹菜单)

发布时间 - 2026-01-11 00:25:25    点击率:

前言:Android菜单常用集合:FragmentTabHost系统菜单、上移式菜单、360波纹菜单、展开式菜单。详解注释,可直接拿来用!

效果:

开发环境:AndroidStudio2.1.2

部分代码(Activity)

public class NormalActivity extends AppCompatActivity {

  private FragmentTabHost mTabHost;

  private String[] mTabTitle = new String[]{"首页", "软件", "游戏", "管理"};

  //菜单图片样式
  private int[] mImageResId = new int[]{R.drawable.sel_tab_home, R.drawable.sel_tab_app,
      R.drawable.sel_tab_game, R.drawable.sel_tab_mag};
  //要加载的Fragment
  private Class[] mFragClass = new Class[]{TabFragment.class, TabFragment.class,
      TabFragment.class, TabFragment.class};

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_normal);
    initTabHost();
  }

  private void initTabHost() {
    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);

    mTabHost.setup(this, getSupportFragmentManager(), R.id.relate_tab_content);

    for (int i = 0; i < mFragClass.length; i++) {
      //Bundle传值到Fragment中,不传值,则第三个参数为null
      Bundle bundle = new Bundle();

      bundle.putString(TabFragment.FRAG_KEY, mTabTitle[i]);

      //第一参数:菜单的文字&样式 第二个参数:需要加载Fragment,第三个参数:需要传到Fragment中的值
      mTabHost.addTab(mTabHost.newTabSpec(mTabTitle[i]).setIndicator(getIndicator(i)), mFragClass[i], bundle);
    }
    //去掉间隔线
    mTabHost.getTabWidget().setDividerDrawable(android.R.color.transparent);
  }

  //菜单的布局样式
  private View getIndicator(int index) {
    View view = LayoutInflater.from(this).inflate(R.layout.tabhost_indicator, null);
    ImageView imageView = (ImageView) view.findViewById(R.id.tab_icon);
    TextView title = (TextView) view.findViewById(R.id.tab_title);
    imageView.setImageResource(mImageResId[index]);
    title.setText(mTabTitle[index]);
    return view;
  }

源码下载

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# android  # 菜单  # Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】  # Android自定义控件之仿优酷菜单  # Android仿优酷圆形菜单学习笔记分享  # Android编程实现仿优酷旋转菜单效果(附demo源码)  # Android 带有弹出收缩动画的扇形菜单实例  # Android实现360手机助手底部的动画菜单  # Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航  # Android利用属性动画实现优酷菜单  # 第三个  # 加载  # 第二个  # 可直接  # 首页  # 源码下载  # 来用  # 不传  # Bundle  # sel_tab_home  # drawable  # mTabTitle  # sel_tab_game  # mImageResId  # int  # sel_tab_app  # TabFragment  # mFragClass  # protected  # Override 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  BootStrap整体框架之基础布局组件  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  如何在新浪SAE免费搭建个人博客?  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何快速完成中国万网建站详细流程?  Android滚轮选择时间控件使用详解  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel如何使用Collections进行数据处理?(实用方法示例)  iOS正则表达式验证手机号、邮箱、身份证号等  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何集成Inertia.js与Vue/React?(安装配置)  英语简历制作免费网站推荐,如何将简历翻译成英文?  简单实现Android文件上传  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  JavaScript如何操作视频_媒体API怎么控制播放  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  如何快速搭建高效服务器建站系统?  Laravel如何使用Gate和Policy进行授权?(权限控制)  javascript读取文本节点方法小结  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  三星网站视频制作教程下载,三星w23网页如何全屏?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  java获取注册ip实例  如何快速登录WAP自助建站平台?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  制作电商网页,电商供应链怎么做?  装修招标网站设计制作流程,装修招标流程?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  昵图网官方站入口 昵图网素材图库官网入口