代码比较简单,直接上。
package com.mys.activity;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.LayoutInflater.Factory;
import android.widget.Toast;
/**
*
* <p>
* DATE: 2011-3-1 下午01:21:25
* <p>
* HISTORY: 1.0
*
* @version 1.0
* @author mys(牟玉石)
* @since java jdk1.6.0_06<br>
* @beanid <br>
*
* 功能描述:<br>
*/
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private static final int ABOUT = 1;
private static final int EXIT = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
// 这里可以使用xml文件也可以使用代码方式,代码方式比较灵活一些~~~
// MenuInflater inflater = new MenuInflater(getApplicationContext());
// inflater.inflate(R.menu.options_menu, menu);
menu.add(0, ABOUT, 1, "关于");
menu.add(0, EXIT, 2, "退出");
setMenuBackgroud();
return true;
}
/**
* 处理点击菜单
*
* @param item
* @return
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
* @author mys at 2011-3-1 下午01:21:01
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int id = item.getItemId();
switch (id) {
case ABOUT: //如果使用xml方式,这里可以使用R.id.about
Toast.makeText(this, "点击了about菜单", Toast.LENGTH_SHORT).show();
break;
case EXIT: //同上
android.os.Process.killProcess(android.os.Process.myPid());
}
return super.onOptionsItemSelected(item);
}
/**
* 设置背景
*
* @author mys at 2011-3-1 下午01:04:29
*/
private void setMenuBackgroud() {
// TODO Auto-generated method stub
getLayoutInflater().setFactory(new Factory() {
@Override
public View onCreateView(String name, Context context,
AttributeSet attrs) {
// TODO Auto-generated method stub
if (name
.equals("com.android.internal.view.menu.IconMenuItemView")) {
LayoutInflater f = getLayoutInflater();
try {
final View view = f.createView(name, null, attrs); // 尝试创建我们自己布局
new Handler().post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
view
.setBackgroundResource(R.drawable.background); // 设置背景为我们自定义的图片
}
});
return view;
} catch (InflateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
});
}
}
分享到:
相关推荐
下面是一段示例代码,展示了如何创建一个简单的自定义menu菜单: ```java // 加载布局 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View popupView = ...
本示例“android自定义弹出menu”着重介绍了如何创建一个类似于QuickContactBadge的自定义菜单,它具有出色的动画效果,提升了应用的用户体验。 QuickContactBadge是Android SDK中一个用于快速联系的组件,点击后...
在Android开发中,`PopupWindow` 是一个非常实用的组件,它允许我们创建弹出式窗口,用于显示一些临时信息或者交互操作。本教程将详细讲解如何封装一个通用的`PopupWindow`,以便在项目中复用,降低代码冗余,提高...
6. **兼容性考虑**:在设计自定义Menu时,需要考虑到不同设备和Android版本的兼容性问题,确保在各种环境下都能正常工作。 源码分析对于理解自定义TabMenu的实现至关重要。通过阅读和学习他人的实现,我们可以借鉴...
在Android开发中,自定义菜单背景能够为应用增添独特的风格,提升用户体验。默认情况下,Android系统的菜单背景通常是白色,但通过编程方式,我们可以将其替换为任何我们想要的图像或颜色。下面将详细介绍如何自定义...
自定义Menu是Android开发中的一个重要概念,它允许开发者根据应用的需求创建个性化的菜单项,以提供更为丰富的用户体验。在Android应用中,Menu主要用于在特定场景下显示一系列操作选项,如在活动(Activity)的选项...
5. **自定义背景和动画**:为了实现泡泡效果,可以创建一个自定义的背景`drawable/bubble_background.xml`,并添加阴影和圆角。此外,还可以通过动画库(如`androidx.transition`)添加弹出和消失的动画,以增加用户...
本示例"android menu自定义菜单 Demo"将向我们展示如何在Android应用程序中创建和定制菜单项,以提供更加丰富的交互功能。让我们深入探讨一下这个话题。 首先,菜单在Android中主要用于在不占据屏幕主要空间的情况...
`Android DropDownMenu`基于`Spinner`组件进行自定义,`Spinner`是Android SDK中内置的一种下拉选择控件。然而,`Spinner`的默认样式可能不能满足所有设计需求,因此开发者经常需要对其进行定制,以实现更美观或更...
要使用`Toolbar`,你需要在布局文件中添加`<androidx.appcompat.widget.Toolbar>`元素,并设置相应的属性,例如高度、背景颜色或图片等。 ```xml <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" ...
可以使用Android的内置资源,如`@android:drawable/ic_menu_back`,或者使用自定义的图片。 4. **事件监听**: 当用户点击返回按钮时,应用需要响应。这需要在Java代码中完成。首先,获取到标题栏布局和返回按钮的...
在Android开发中,自定义`MENU`是一种常见的需求,它能提供更为个性化的交互体验。本教程将深入探讨如何利用`PopupWindow`来实现一个自动显示的`MENU`,这通常用于在用户触发某一操作时,弹出一个包含多个选项的菜单...
总之,通过自定义样式、动画和交互,Android的Menu可以变得非常生动有趣。理解并熟练掌握这些技术,能帮助开发者创建更加吸引人的用户界面,提升应用的整体质量。在实际开发中,不断尝试和创新,让菜单成为提升用户...
本篇将深入探讨如何在Android中实现自定义Menu菜单。 首先,我们从Menu的基本概念开始。在Android中,Menu主要用于在特定时刻(如点击应用图标右上角的“...”或在活动中长按)显示一系列可选操作。菜单可以分为三...
在Android开发中,自定义菜单背景能够为应用增添独特的风格,提升用户体验。默认情况下,Android系统的菜单背景通常是白色,但通过编程方式,我们可以轻松实现个性化菜单背景。以下是如何自定义Android菜单背景的...
在Android开发中,`Toolbar`是Google推荐用来替代传统`ActionBar`的新组件,它提供了更大的灵活性和自定义性。这个例程将带你深入理解如何在Android应用中自定义`Toolbar`,并展示其实现过程。 首先,让我们了解`...
Android2.2版本中,如果你要修改菜单默认的背景颜色,网络上有许多的方法。在此就不说了。但是,如果要在2.2以上的版本修改菜单的样式,例如修改背景颜色,图片等,使用这些方法是没有任何作用的。因此自己写了一个...
`PopupWindow`是Android中的一个强大组件,允许开发者创建弹出式窗口,其灵活性更高,可以自定义窗口的内容、大小和位置。在这个教程中,我们将探讨如何使用`PopupWindow`来模拟`ViewPager`中的自定义菜单。 首先,...