Android仿微信菜单使用C#和Java分别实现的案例

小编给大家分享一下Android仿微信菜单使用C#和Java分别实现的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

本篇是对安卓菜单使用编程方式实现,当然可以使用XML的方式完成同样的功能,基本Java和C#写法都是一致的,所以使用XML的方式在本篇中使用Java演示,需要注意的是,对于如果不是VS开发的话,那么资源文件名称必须以小写开头,否则会报错。

运行效果Android仿微信菜单使用C#和Java分别实现的案例

C#实现

usingAndroid.App;
usingAndroid.OS;
usingAndroid.Views;
usingAndroid.Widget;
namespaceMenuDemo
{
[Activity(Label="@string/ApplicationName",MainLauncher=true,Icon="@drawable/Icon")]
publicclassMainActivity:Activity
{
protectedoverridevoidOnCreate(Bundlebundle)
{
base.OnCreate(bundle);

SetContentView(Resource.Layout.Main);
variv=FindViewById<ImageView>(Resource.Id.iv);
iv.SetImageResource(Resource.Drawable.test);
RegisterForContextMenu(iv);
}
//与一个活动关联
publicoverrideboolOnCreateOptionsMenu(IMenumenu)
{
base.OnCreateOptionsMenu(menu);
constintmenuItemId=Menu.First;
constintmenuItemOrder=Menu.None;
constintmunuItemText=Resource.String.menuItem1;
/*
*第一个参数:组值
*第二个参数:菜单唯一标示
*第三个参数:顺序参数
*第四个参数:文本
*/
menu.Add(1,menuItemId,menuItemOrder,munuItemText);
menu.Add(2,menuItemId+10,menuItemOrder+1,"菜单2");
menu.Add(2,menuItemId+20,menuItemOrder+2,"菜单3");
varsubMenu=menu.AddSubMenu(0,menuItemId+30,menuItemOrder+3,"子菜单");
subMenu.SetHeaderIcon(Resource.Drawable.more);
varsubMenuItem1=subMenu.Add(0,menuItemId+40,menuItemOrder+4,"子菜单-1");
subMenuItem1.SetIcon(Resource.Drawable.more);
varsubMenuItem2=subMenu.Add(0,menuItemId+50,menuItemOrder+5,"子菜单-2").SetCheckable(true);
subMenuItem2.SetIcon(Resource.Drawable.blue);
subMenu.Add(0,menuItemId+60,menuItemOrder+6,"子菜单-3").SetCheckable(true);
returntrue;
}

publicoverrideboolOnOptionsItemSelected(IMenuItemitem)
{
Toast.MakeText(this,"当前菜单编号"+item.ItemId,ToastLength.Long).Show();
returnbase.OnOptionsItemSelected(item);
}
publicoverridevoidOnCreateContextMenu(IContextMenumenu,Viewv,IContextMenuContextMenuInfomenuInfo)
{
base.OnCreateContextMenu(menu,v,menuInfo);
menu.SetHeaderTitle("上下文菜单");
menu.SetHeaderIcon(Resource.Drawable.blue);
menu.Add(0,Menu.First,Menu.None,"菜单1");
menu.Add(0,Menu.First+1,Menu.None,"菜单2").SetShortcut('2','B');
menu.Add(0,Menu.First+2,Menu.None,"菜单3");
varsubMenu=menu.AddSubMenu("子菜单");
subMenu.Add("子菜单选项");
}
}
}

Layout

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/iv"/>
</LinearLayout>

运行效果

Android仿微信菜单使用C#和Java分别实现的案例

Java实现

packagecom.example.halower.menudemo;

importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.ContextMenu;
importandroid.view.MenuInflater;
importandroid.view.View;
importandroid.widget.ImageView;

publicclassMainActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageViewiv=(ImageView)findViewById(R.id.iamgeView);
iv.setImageResource(R.drawable.test);
registerForContextMenu(iv);
}

@Override
publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenu.ContextMenuInfomenuInfo){
super.onCreateContextMenu(menu,v,menuInfo);
MenuInflaterinflater=newMenuInflater(this);
inflater.inflate(R.menu.menu_main,menu);
menu.setHeaderIcon(R.drawable.blue);
menu.setHeaderTitle(R.string.menuTitle);
}
}

Layout

<?xmlversion="1.0"encoding="utf-8"?>
<resources>

<stringname="app_name">MenuDemo</string>
<stringname="action_settings">Settings</string>
<stringname="item1Name">菜单1</string>
<stringname="item2Name">菜单2</string>
<stringname="item3Name">菜单3--More</string>
<stringname="item4Name">菜单4</string>
<stringname="menuTitle">XML中解析菜单</string>
<stringname="subitem1Name">子菜单1</string>
<stringname="subitem2Name">子菜单2</string>
</resources>

以上是“Android仿微信菜单使用C#和Java分别实现的案例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-03-13 15:37:43
收藏
分享
海报
0 条评论
157
上一篇:微信小程序开发制作麦克风动画实现放大、淡出效果的案例 下一篇:微信开发怎么实现自定义菜单
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码