您好,登錄后才能下訂單哦!
小編給大家分享一下Android仿微信菜單使用C#和Java分別實現(xiàn)的案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
本篇是對安卓菜單使用編程方式實現(xiàn),當(dāng)然可以使用XML的方式完成同樣的功能,基本Java和C#寫法都是一致的,所以使用XML的方式在本篇中使用Java演示,需要注意的是,對于如果不是VS開發(fā)的話,那么資源文件名稱必須以小寫開頭,否則會報錯。
運行效果
C#實現(xiàn)
using Android.App; using Android.OS; using Android.Views; using Android.Widget; namespace MenuDemo { [Activity(Label = "@string/ApplicationName", MainLauncher = true, Icon = "@drawable/Icon")] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); var iv = FindViewById<ImageView>(Resource.Id.iv); iv.SetImageResource(Resource.Drawable.test); RegisterForContextMenu(iv); } //與一個活動關(guān)聯(lián) public override bool OnCreateOptionsMenu(IMenu menu) { base.OnCreateOptionsMenu(menu); const int menuItemId = Menu.First; const int menuItemOrder = Menu.None; const int munuItemText = Resource.String.menuItem1; /* * 第一個參數(shù):組值 * 第二個參數(shù):菜單唯一標(biāo)示 * 第三個參數(shù):順序參數(shù) * 第四個參數(shù):文本 */ menu.Add(1, menuItemId, menuItemOrder, munuItemText); menu.Add(2, menuItemId + 10, menuItemOrder + 1, "菜單2"); menu.Add(2, menuItemId + 20, menuItemOrder + 2, "菜單3" ); var subMenu = menu.AddSubMenu(0, menuItemId + 30, menuItemOrder + 3, "子菜單" ); subMenu.SetHeaderIcon(Resource.Drawable.more); var subMenuItem1 = subMenu.Add(0, menuItemId + 40, menuItemOrder + 4,"子菜單-1" ); subMenuItem1.SetIcon(Resource.Drawable.more); var subMenuItem2 = 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); return true; } public override bool OnOptionsItemSelected(IMenuItem item) { Toast.MakeText(this, "當(dāng)前菜單編號" + item.ItemId, ToastLength.Long).Show(); return base.OnOptionsItemSelected(item); } public override void OnCreateContextMenu(IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo) { 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"); var subMenu = menu.AddSubMenu("子菜單"); subMenu.Add("子菜單選項"); } } }
Layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: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實現(xiàn)
package com.example.halower.menudemo; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.MenuInflater; import android.view.View; import android.widget.ImageView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView iv=(ImageView)findViewById(R.id.iamgeView); iv.setImageResource(R.drawable.test); registerForContextMenu(iv); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater=new MenuInflater(this); inflater.inflate(R.menu.menu_main,menu); menu.setHeaderIcon(R.drawable.blue); menu.setHeaderTitle(R.string.menuTitle); } }
Layout
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">MenuDemo</string> <string name="action_settings">Settings</string> <string name="item1Name" >菜單1</string> <string name="item2Name" >菜單2</string> <string name="item3Name" >菜單3--More</string> <string name="item4Name" >菜單4</string> <string name="menuTitle">XML中解析菜單</string> <string name="subitem1Name">子菜單1</string> <string name="subitem2Name">子菜單2</string> </resources>
以上是“Android仿微信菜單使用C#和Java分別實現(xiàn)的案例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。