效果图

1、布局文件 layout_main.xml

中间标题栏,左右各一个按钮。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:background="#F79709" > <ImageButton
android:id="@+id/leftButton"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:background="@drawable/back" /> <TextView
android:id="@+id/titleText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center|center_vertical"
android:text="我的首页"
android:textColor="#FFFFFF"
android:textSize="22sp" /> <ImageButton
android:id="@+id/rightButton"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:background="@drawable/menu" />
</LinearLayout> </LinearLayout>

2、menu文件下的 main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.huayuan.MainActivity" > <item
android:id="@+id/action_config"
android:orderInCategory="100"
android:showAsAction="never"
android:title="设置"/> <item
android:id="@+id/action_data"
android:orderInCategory="100"
android:showAsAction="never"
android:title="查询"/>
<item
android:id="@+id/action_exit"
android:orderInCategory="100"
android:showAsAction="never"
android:title="退出"/> </menu>

3、Java代码 MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener; public class MainActivity extends Activity { ImageButton rightImageBtn;
PopupMenu popupMenu;
Menu menu; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏
setContentView(R.layout.activity_main); rightImageBtn = (ImageButton) findViewById(R.id.rightButton);
popupMenu = new PopupMenu(this, rightImageBtn);
menu = popupMenu.getMenu();
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main, menu);
// 点击右按钮弹出菜单栏
rightImageBtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
popupMenu.show();
}
});
// 点击菜单栏item
popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_config:
// TODO:设置
break;
case R.id.action_data:
// TODO:查询
break;
case R.id.action_exit:
// TODO:退出
break;
default:
break;
}
return false;
}
});
}
}

5、问题

  • 如何给menu做个样式,比如改变颜色、文字居中的?
  • 如何改变menu的位置?
  • 如何把标题栏在项目所有的界面使用?
  • 如何使标题栏与顶部颜色融合在一起?

【Android-PopupMenu控件】 自定义标题栏+PopupMenu菜单的更多相关文章

  1. Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

    一.RadioButton / CheckBox 系统自带的RadioButton/CheckBox的样式,注定满足不了实际运用中的情况,有时候自定义自己的样式:此次把自己中工作学习过程中所学到的东西 ...

  2. delphi popupmenu控件用法

    是,右键菜单控件,和特定的窗体控件的popmenu属性关联就可以了 添加一个popupmenu控件,双击该控件,在弹出的界面中设置好name以及caption属性,点击事件的做法就跟button一样了 ...

  3. 【Android开发日记】之入门篇(十四)——Button控件+自定义Button控件

        好久不见,又是一个新的学期开始了,为什么我感觉好惆怅啊!这一周也发生了不少事情,节假日放了三天的假(好久没有这么悠闲过了),实习公司那边被组长半强制性的要求去解决一个后台登陆的问题,结果就是把 ...

  4. Android基本控件之Menus

    在我们的手机中有很多样式的菜单,比如:我们的短信界面,每条短信,我们长按都会出现一个菜单,还有很多的种类.那么现在,我们就来详细的讨论一下安卓中的菜单 Android的控件中就有这么一个,叫做Menu ...

  5. Android 开源控件与常用开发框架开发工具类

    Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ...

  6. 矩阵, 矩阵 , Android基础控件之ImageView

    天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ...

  7. Github上star数超1000的Android列表控件

    Android开发中,列表估计是最最常使用到的控件之一了.列表相关的交互如下拉刷新,上拉更多,滑动菜单,拖动排序,滑动菜单,sticky header分组,FAB等等都是十分常见的体验.Github中 ...

  8. 【Android开发日记】之入门篇(十三)——Android的控件解析

    Android的控件都派生自android.view.View类,在android.widget包中定义了大量的系统控件供开发者使用,开发者也可以从View类及其子类中,派生出自定义的控件. 一.An ...

  9. 一个Demo让你掌握Android所有控件

    原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"      下面给出实现各个组件的源代码: 1.下拉框实现--Spinner packag ...

  10. Android基础控件ListView基础操作

    1.简介 基于Android基础控件ListView和自定义BaseAdapter适配器情况下,对ListView的数据删除和添加操作: public boolean add(E e) {//添加数据 ...

随机推荐

  1. (六)Spring 中的 JdbcTemplate

    目录 概念 配置数据库 创建 JdbcTemplate 对象 增删改查代码 概念 JdbcTemplate : 是 Spring 中对持久层(JDBC 技术)一个封装 : 使用起来和 Dbutuis ...

  2. 在Visual C++ 6.0中为代码添加行号

    由如上代码可知Visual C++ 6.0是没有行号的(新手代码不要在意,重点是没有行号),在编译报错的时候会发现其会指出在第几行错了,如果没有代码行号将很难找到它 为解决这个问题可以安装插件给Vis ...

  3. NOIP 2018 提高组初赛试题 题目+答案+简要解析

    一.单项选择题(共 10  题,每题 2  分,共计 20  分: 每题有且仅有一个正确选项)       1. 下列四个不同进制的数中,与其它三项数值上不相等的是( ). A. (269) 16 B ...

  4. 【AC自动机】文本生成器

    [题目链接] https://loj.ac/problem/10063 [题意] 给出长度为m,n个模式串,请问只要长度为m的串中有一个模式串就算是可读. [分析] 其实如果直接分析全部可读的情况,一 ...

  5. 怎样获取Cookie

    使用 document.cookie 获取; document.cookie

  6. [Tarjan系列] Tarjan算法求无向图的双连通分量

    这篇介绍如何用Tarjan算法求Double Connected Component,即双连通分量. 双联通分量包括点双连通分量v-DCC和边连通分量e-DCC. 若一张无向连通图不存在割点,则称它为 ...

  7. Attribute自定义特性+Asp.net MVC中的filter详解

    转载自:http://blog.csdn.net/wangyy130/article/details/44241957 一.filter简介 在了解自定义特性前,先引入一个概念filter,它是MVC ...

  8. 缩放动画(ScaleTransform)

    在Silverlight的动画框架中,ScaleTransform类提供了在二维空间中的坐标内进行缩放操作,通过ScaleTransform可以在水平或垂直方向的缩放和拉伸对象,以实现一个简单的缩放动 ...

  9. codeblocks 使用汇总

    codeblocks 使用汇总 http://www.cnblogs.com/-clq/archive/2012/01/31/2333247.html

  10. arcgis js 之 渔网工具(调用地图服务)

    arcgis js 之 渔网工具(调用地图服务) 原理: 简历不同级别的网渔网图层,设置显示比例尺.然后发布服务,使用MapImageLayer接收. 过程: 1.在arcmap中用创建渔网工具将不同 ...