Android仿微信菜单使用C#和Java分别实现的案例
作者
小编给大家分享一下Android仿微信菜单使用C#和Java分别实现的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
本篇是对安卓菜单使用编程方式实现,当然可以使用XML的方式完成同样的功能,基本Java和C#写法都是一致的,所以使用XML的方式在本篇中使用Java演示,需要注意的是,对于如果不是VS开发的话,那么资源文件名称必须以小写开头,否则会报错。
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>
运行效果
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分别实现的案例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
目录
推荐阅读
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能
-
android怎么实现多点触摸应用
-
Android怎么实现手势划定区域裁剪图片
-
android怎么实现简单的矩形裁剪框
-
Android单选多选按钮怎么使用
-
Android中如何利用oncreate获取控件高度或宽度
Android中如何利用oncreate获取控件高度或宽度本篇内容...
-
Android中怎么使用onSaveInstanceState()方法
Android中怎么使用onSaveInstanceState()方法...
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~