android项目实战-背呗单词DEV05-主界面自定义menu

该篇说明

该篇我们进行主界面自定义底部菜单使用的讲解

主界面也就是当天任务界面FragmentActivity

自定义menu的功能需要导入V1UILibrary即可

源码地址:https://github.com/vomzoo/VOMAndroidUILib

在主界面只是调用自定义menu,具体实现暂请看V1UILibrary源码

效果如图

流程图

主要UI功能

1> 重写onCreateOptionsMenu并添加一项

/**
  * 自定义menu,必须创建一项
  */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
      menu.add("menu");
      return super.onCreateOptionsMenu(menu);
}

2> 重写onMenuOpened拦截默认menu并设置menu

/**
  * 拦截menu
  * 返回false,则说明显示自定义menu
  */
 @Override
 public boolean onMenuOpened(int featureId, Menu menu) {
      if(customMenuPopupWindow != null) {
         if(customMenuPopupWindow.isShowing()) {
             customMenuPopupWindow.dismiss();
         } else {
             //显示窗口
            //设置layout在PopupWindow中显示的位置
            customMenuPopupWindow.showAtLocation(
                   this.findViewById(R.id.todayTaskLinearLayout),
                   Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
         }
      }
      return false;
}

3> 创建实现OnItemClickListener的类来设置menu

/**
  * menu点击事件
  * 根据点击跳转
  */
  class BodyClickEvent implements OnItemClickListener {
      @Override
      public void onItemClick(AdapterView<?> adapterView, View view, int position,
            long arg3) {
         if(position != 2) {
            context.startActivity(new Intent(context, resultClassArray[position]));

            if(customMenuPopupWindow.isShowing()) {
                customMenuPopupWindow.dismiss();
            }

            if(position == 1) {
                activity.finish();
            }
         } else {
            SystemUtil.exitApp(activity);
         }
      }
}

4> 初始自定义menu

/**
  * 初始化创建自定义menu
  * 第三个参数,menu背景,0代表白色
  */
    private void initNewPopupWindow() {
      customMenuPopupWindow = new CustomMenuPopupWindow(
            this, bodyAdapterImgArray.length, new BodyClickEvent(), SystemUtil.screenHeight);
      customMenuPopupWindow.setBodyAdapter(bodyAdapter);
}

更多请自行下载源码解读

应用下载:请点击

源码下载:请点击

时间: 2024-08-22 00:51:07

android项目实战-背呗单词DEV05-主界面自定义menu的相关文章

android项目实战-背呗单词00-文章目录

一.准备篇android项目实战-背呗单词00-文章目录android项目实战-背呗单词01-软件说明android项目实战-背呗单词02-项目概述android项目实战-背呗单词03-项目图表android项目实战-背呗单词04-项目数据库说明 二.重要技术实现说明android项目实战-背呗单词DEV00-程序环境构架搭建android项目实战-背呗单词DEV01-拷贝单词书实现android项目实战-背呗单词DEV02-创建计划实现android项目实战-背呗单词DEV03-创建任务实现a

android项目实战-背呗单词DEV07-单词测试实现

该篇说明 该篇我们进行单词测试实现讲解 也就是单词测试界面WordExamActivity中功能 布局也需要在xml中实现 但是也需要有单词测试视图类来设置一些值具体查看对照源码 在该界面中,测试完后会更新数据 效果如图 流程图 单词测试界面功能流程详解 1> 显示单词测试信息 a> 首先要加载单词测试数据 需要调用单词测试管理模块加载数据功能 private void loadWordExamData() { loadingExamDataProgressBar = (ProgressBar

android项目实战-背呗单词02-项目概述

本篇说明: 项目概述主要包括 1> 项目开发说明 2> 功能需求说明 3> app原型图 4> 效果演示图 项目开发说明: 1> 在学习android过程中,看到别人的一些词典开发文章但是不完整所以就有了该项目的启动了 2> 在开发过程中,加强了项目文档的经验,最后使用了迭代思维 3> 该项目经过多次UI改进,所以耗时比较长,因为也是业余开发,并整理了UI和Utils两套简单的android组件库 功能需求说明: 这里功能需求按照产品需求及软件模块描述 1>

android项目实战-背呗单词DEV06-单词背诵实现

该篇说明 该篇我们进行单词背诵实现讲解 单词背诵功能主要在单词详解界面中WordDetActivity > 在单词列表界面中点击按钮就可进入单词详解界面进行一个单元组范围单词的学习 > 在单词详解界面中只进行单元组范围单词学习记录, 待测试完后才算学习一次. 否则不记录到数据库 效果如图 流程图 单词详解界面功能流程详解 1> 显示单词详细信息 这里用到了WordDetView.getViev(Activity, WordDet)方法 界面组成大部分是由代码实现了,单词详解视图界面会详解

android项目实战-背呗单词DEV01-拷贝单词书实现

该篇说明 现在我们正式进入功能及代码的分析 主要进行重要功能的讲解吧. 拷贝单词书功能在第一个界面中 也就是在欢迎界面WelcomeActivity中 项目整体构架是MVC模式的 UI中主要只进行调用显示数据 真正的数据处理逻辑在客户端后台. 那么先介绍UI及流程,再描述后台的拷贝单词书功能. 效果如图 执行流程图 流程详细说明 1> 先需要检查单词书 首先需要检查SDcard中是否存在单词书文件,不存在才需要进行拷贝 private void checkWordBookFiles() { bo

android项目实战-背呗单词DEV02-创建计划实现

该篇说明 该篇我们来详解创建计划功能实现. 创建计划功能是在创建计划界面中的. 也就是在CreatePlanActivity中 在后台模块中只描述管理层,其它的数据库操作等请自行查看 效果如图 执行流程图 创建计划UI界面功能说明 1> 横幅显示创建计划字符 hfTitleTextView = (TextView) findViewById(R.id.hfTitleTextView); hfTitleTextView.setText("创建计划"); 2> 创建计划项的填写

android项目实战-背呗单词DEV00-程序环境构架搭建

要开发项目当然要首先进行环境的搭建 我们这里使用的是eclipse+ADT 下载开发环境所需软件 1> JDK1.7 下载地址:百度云点我 官网地址:请点击我 2> Eclipse4.4 luna 下载地址:百度云点我 官网地址:请点击我 3> Android SDK Manager 24.0.2 下载地址:百度云点我 (特别说明:我的百度云已经包含了4.0.3和2.1的SDK) 官网地址:请点击我直接下载 4> ADT 24.0.2 下载地址:百度云点我 官网地址:请点击我直接下

android项目实战-背呗单词03-项目图表

本篇说明: 包括相关图和相关表 相关图 1> 总体流程图 2> 软件功能图 3> 软件模块图 4> 软件构架图 相关表 1> 功能需求表 2> 功能需求与管理模块的关系表 3> 包结构表 图相关 1> 总体流程图 2> 软件功能图 3> 软件模块图 4> 软件构架图 表相关 有待更新

Android项目实战(九):CustomShapeImageView 自定义形状的ImageView

原文:Android项目实战(九):CustomShapeImageView 自定义形状的ImageView 一个两年前出来的第三方类库,具有不限于圆形ImageView的多种形状ImageView,项目开发必备 github下载地址:https://github.com/MostafaGazar/CustomShapeImageView 1.首先源码中有一个第三方类库 :library 先要把Library导入到项目中, 不会的可以看下导入方法:关于Eclipse 和 IDEA 导入libra