编程培训:安卓实现微信菜单

    作者:在线学习平台更新于: 2015-07-17 13:01:55

    大神带你学编程,欢迎选课

    微信用户群体的数量之多,是我们意料之外,也是情理之中,微信在智能手机上应用程序是常用的,几乎每个人的智能手机上都有安装它,微信除了强大实用的功能之外,界面做得也是相当漂亮的,右上角的操作菜单看起来非常好,就照着模仿了一下,所以今天android 开发的实战主题就是让Android实现微信菜单的效果。
    进入正题,本次的编程培训学习是对安卓(Android)菜单使用编程方式实现,当然,你可以使用XML的方式来完成相同的功能,基本的Java和C#的写法是一样的,所以使用Java和XML在本演示中,你需要注意的是,如果不是VS的开发的话,那么资源文件名称必须以小写,否则会报错的。

    运行效果:
    安卓实现微信菜单
    C#实现

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    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(Resource.Id.iv);
    iv.SetImageResource(Resource.Drawable.test);
    RegisterForContextMenu(iv);
    }
    //与一个活动关联
    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;
    /*
    * 第一个参数:组值
    * 第二个参数:菜单唯一标示
    * 第三个参数:顺序参数
    * 第四个参数:文本
    */
    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, "当前菜单编号" + 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

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/iv" />
     

    运行效果:
    安卓实现微信菜单
    Java实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    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

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     
    MenuDemo
    Settings
    菜单1
    菜单2
    菜单3--More
    菜单4
    XML中解析菜单
    子菜单1
    子菜单2
     
    时间过得飞快,又到了编程入门教程的结尾部分了,到这里代码就全部都写完了。我们学习再多的理论知识,掌握了再好的知识要点,不如实实在在投入到项目实战中去,更多的android 开发视频课程可登录课课家在线学习平台了解相关资讯。
微信 更多推荐

课课家教育

未登录