在Android系统之中。菜单一共同拥有三类:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。
今天我们就用几个样例来分别介绍下菜单的使用
activity类中长见的方法

1
public void closeContextMenu()
普通
关闭上下文菜单
2
public void closeOptionsMenu()
普通
关闭选项菜单
3
public boolean onContextItemSelected(MenuItem item)
普通
设置上下文菜单项
4
public void onContextMenuClosed(Menu menu)
普通
上下文菜单关闭时触发
5
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
普通
创建上下文菜单
6
public boolean onCreateOptionsMenu(Menu menu)
普通
当用户选择“Menu”button时调用此操作,能够生成一个选项菜单
7
public boolean onMenuItemSelected(int featureId, MenuItem item)
普通
设置选项菜单项
8
public boolean onOptionsItemSelected(MenuItem item)
普通
当一个选项菜单中的某个菜单项被选中时触发此操作
9
public void onOptionsMenuClosed(Menu menu)
普通
当选项菜单关闭时触发此操作
10
public boolean onPrepareOptionsMenu(Menu menu)
普通
当选项菜单显示之前操作触发此操作
11
public void openOptionsMenu()
普通
打开选项菜单
12
public MenuInflater getMenuInflater()
普通
取得MenuInflater类的对象
13
public void registerForContextMenu(View view)
普通
注冊上下文菜单

MENU的经常用法
1
public static final int FIRST
常量
用于定义菜单项的编号
2
public static final int NONE
常量
表示菜单不分组
3
public abstract MenuItem add(int groupId, int itemId, int order, CharSequence title)
普通
此方法用于向菜单之中加入菜单项,參数作用:
· groupId:菜单所在的组编号;
· itemId:菜单项的ID;
· order:菜单的出现顺序;
· title:菜单的显示文字。
4
public abstract MenuItem add(int groupId, int itemId, int order, int titleRes)
普通
添加菜单项
5
public abstract SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) 
普通
添加子菜单
6
public abstract SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title)
普通
添加子菜单
7
public abstract void removeGroup(int groupId)
普通
删除一个菜单组
8
public abstract void removeItem(int id)
普通
删除一个菜单项
9
public abstract void clear()
普通
清空菜单
10
public abstract void close()
普通
关闭菜单
11
public abstract MenuItem getItem(int index)
普通
返回指定的菜单项
12
public abstract int size()
普通
返回菜单项的个数


MuenItem中经常使用的方法
1
public abstract int getGroupId()
普通
得到菜单组编号
2
public abstract Drawable getIcon()
普通
得到菜单项上的图标
3
public abstract int getItemId()
普通
得到菜单项上的ID
4
public abstract int getOrder()
普通
得到菜单项上的编号
5
public abstract SubMenu getSubMenu()
普通
取得子菜单
6
public abstract CharSequence getTitle()
普通
得到菜单项上的标题
7
public abstract boolean isCheckable()
普通
推断菜单项是否可用
8
public abstract boolean isChecked()
普通
推断此菜单项是否被选中
9
public abstract boolean isEnabled()
普通
推断此菜单项是否可用
10
public abstract boolean isVisible()
普通
推断此菜单项是否可见
11
public abstract MenuItem setCheckable(boolean checkable)
普通
设置此菜单项是否可用
12
public abstract MenuItem setChecked(boolean checked)
普通
设置此菜单项是否默认选中
13
public abstract MenuItem setEnabled(boolean enabled)
普通
设置此菜单项是否可用
14
public abstract MenuItem setIcon(Drawable icon)
普通
设置此菜单项的图标
15
public abstract MenuItem setIcon(int iconRes)
普通
设置此菜单项的图标
16
public abstract MenuItem setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener menuItemClickListener)
普通
设置此菜单项的监听操作
17
public abstract MenuItem setTitle(CharSequence title)
普通
设置此菜单项的标题
18
public abstract MenuItem setVisible(boolean visible)
普通
设置此菜单项是否可见
19
public abstract ContextMenu.ContextMenuInfo getMenuInfo()
普通
得到菜单中的内容
以上方法是按英文Api翻译,难免有错误之处,欢迎大家指正

1.选项菜单的使用

<span style="font-size:18px;">package com.example.menu1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// 此方法能够调用menu文件进行配置
// getMenuInflater().inflate(R.menu.main, menu); // add(int groupId, int itemId, int order, Charsequence titleRes)
// 菜单组ID itemID 指令指向ID 菜单标题
menu.add(1000, 1, 1, "添加").setIcon(android.R.drawable.ic_menu_add);
menu.add(1000, 2, 2, "上传").setIcon(
android.R.drawable.ic_menu_upload_you_tube);
menu.add(1000, 3, 3, "保存").setIcon(android.R.drawable.ic_menu_save);
menu.add(1000, 4, 4, "删除").setIcon(android.R.drawable.ic_menu_delete);
menu.add(1000, 5, 5, "详情").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(1000, 6, 6, "分享").setIcon(android.R.drawable.ic_menu_share);
menu.add(1000, 7, 7, "日期").setIcon(
android.R.drawable.ic_menu_my_calendar);
return true; } @Override
// 菜单选项选中处理事件
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, "您点击了添加菜单", 2).show();
break;
case 2:
Toast.makeText(MainActivity.this, "您点击了上传菜单", 2).show();
break;
case 3:
Toast.makeText(MainActivity.this, "您点击了保存菜单", 2).show();
break;
case 4:
Toast.makeText(MainActivity.this, "您点击了删除菜单", 2).show();
break;
case 5:
Toast.makeText(MainActivity.this, "您点击了详情菜单", 2).show();
break;
case 6:
Toast.makeText(MainActivity.this, "您点击了分享菜单", 2).show();
break;
case 7:
Toast.makeText(MainActivity.this, "您点击了日期菜单", 2).show();
break;
default:
break;
}
return true;
} @Override
// 菜单打开时操作
public void openOptionsMenu() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单打开", 2).show();
} @Override
// 菜单关闭时操作
public void onOptionsMenuClosed(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
} @Override
// 菜单准备时操作
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "准备操作", 2).show();
return true;
} }
</span>

也能够使用xml文件对菜单进行配置

<span style="font-size:18px;"><menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <group android:id="@+id/group1" >
<item
android:id="@+id/item1" android:title="文件">
</item>
<item
android:id="@+id/item2"
android:title="编辑">
</item>
<item
android:id="@+id/item3"
android:title="查询">
</item>
<item
android:id="@+id/item4"
android:title="project">
</item>
<item
android:id="@+id/item5"
android:title="执行">
</item>
<item
android:id="@+id/item6"
android:title="窗体">
</item>
<item
android:id="@+id/item7"
android:title="帮助">
</item>
<item
android:id="@+id/item8"
android:title="文档">
</item>
</group> </menu></span>

JAVA文件


<span style="font-size:18px;">package com.example.menu1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// 此方法能够调用menu文件进行配置
getMenuInflater().inflate(R.menu.main, menu); return true; } @Override
// 菜单选项选中处理事件
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, "您点击了添加菜单", 2).show();
break;
case 2:
Toast.makeText(MainActivity.this, "您点击了上传菜单", 2).show();
break;
case 3:
Toast.makeText(MainActivity.this, "您点击了保存菜单", 2).show();
break;
case 4:
Toast.makeText(MainActivity.this, "您点击了删除菜单", 2).show();
break;
case 5:
Toast.makeText(MainActivity.this, "您点击了详情菜单", 2).show();
break;
case 6:
Toast.makeText(MainActivity.this, "您点击了分享菜单", 2).show();
break;
case 7:
Toast.makeText(MainActivity.this, "您点击了日期菜单", 2).show();
break;
default:
break;
}
return true;
} @Override
// 菜单打开时操作
public void openOptionsMenu() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单打开", 2).show();
} @Override
// 菜单关闭时操作
public void onOptionsMenuClosed(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
} @Override
// 菜单准备时操作
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "准备操作", 2).show();
return true;
} }
</span>







2.上下文菜单的使用
接下来我们就使用listview来来进行演示上下文菜单。即长按 选项弹出菜单

就是讲contexMenu与listview相绑定,来对应用户的点击操作

XML文件

<span style="font-size:18px;">package com.example.menu2;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity {
private String data[] = { "房泽龙", "22", "河南大学", "教育科学学院", "河南平顶山", "河南开封" }; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = new ListView(this);//创建ListView
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, data));//绑定Adapter
super.registerForContextMenu(listView);//为listview注冊菜单
super.setContentView(listView); //设置显示的内容 } @Override//事件处理
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, "复制操作", 2).show();
break;
case 2:
Toast.makeText(MainActivity.this, "详情操作", 2).show();
break;
case 3:
Toast.makeText(MainActivity.this, "删除操作", 2).show();
break;
case 4:
Toast.makeText(MainActivity.this, "关闭操作", 2).show();
break;
case 5:
Toast.makeText(MainActivity.this, "分享操作", 2).show();
break;
case 6:
Toast.makeText(MainActivity.this, "编辑操作", 2).show();
break; default:
break;
} return true;
} @Override
public void onContextMenuClosed(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
} @Override//添加菜单操作
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
menu.setHeaderTitle("信息操作");
menu.add(1000, 1, 1, "复制").setIcon(android.R.drawable.ic_menu_agenda);
menu.add(1000, 2, 2, "详情").setIcon(android.R.drawable.ic_menu_info_details);
menu.add(1000, 3, 3, "删除").setIcon(android.R.drawable.ic_menu_delete);
menu.add(1000, 4, 4, "关闭").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
menu.add(1000, 5, 5, "分享").setIcon(android.R.drawable.ic_menu_share);
menu.add(1000, 6, 6, "编辑").setIcon(android.R.drawable.ic_menu_edit);
} }
</span>

相同选项菜单的配置也能够使用xml文件配置


<span style="font-size:18px;">    <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/group1">
<item android:id="@+id/a1" android:title="复制"></item>
<item android:id="@+id/a2" android:title="详情"></item>
<item android:id="@+id/a3" android:title="删除"></item>
<item android:id="@+id/a4" android:title="分享"></item>
<item android:id="@+id/a5" android:title="发送"></item>
</group>
</menu>
</span>

JAVA文件


<span style="font-size:18px;">package com.example.menu3;

import android.os.Bundle;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity {
private String data[] = { "房泽龙", "22", "河南大学", "教育科学学院", "河南平顶山", "河南开封" };//数据 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = new ListView(this);//创建listview
listView.setAdapter(new ArrayAdapter<String>(this,//设置adapter
android.R.layout.simple_expandable_list_item_1, data));
super.registerForContextMenu(listView);//注冊选项菜单
super.setContentView(listView); //设置显示的内容
} @Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.a1:
Toast.makeText(MainActivity.this, "复制操作", 2).show();
break;
case R.id.a2:
Toast.makeText(MainActivity.this, "详情操作", 2).show();
break;
case R.id.a3:
Toast.makeText(MainActivity.this, "删除操作", 2).show();
break;
case R.id.a4:
Toast.makeText(MainActivity.this, "关闭操作", 2).show();
break;
case R.id.a5:
Toast.makeText(MainActivity.this, "分享操作", 2).show();
break;
case 6:
Toast.makeText(MainActivity.this, "编辑操作", 2).show();
break; default:
break;
} return true;
} @Override
public void onContextMenuClosed(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
} @Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.getMenuInflater().inflate(R.menu.main, menu);//将菜单与xml文件里的菜单选项相绑定
super.onCreateContextMenu(menu, v, menuInfo);//创建菜单
menu.setHeaderTitle("信息操作");//设置上下文菜单标题
} }
</span>





上下文菜单多用电话本。信息等地方,来实现对所选项的进一步操作


3.子菜单操作

所谓子菜单就是点击一个菜单后不会立刻进行相关事件操作。而是由跳出第二个菜单让用户进行选择。点击二级菜单后再进行事件操作,这就是子菜单

1
public abstract MenuItem getItem()
普通
得到一个子菜单所属的父菜单对象
2
public abstract SubMenu setHeaderIcon(int iconRes)
普通
设置菜单的显示图标
3
public abstract SubMenu setHeaderTitle(int titleRes)
普通
设置子菜单的显示标题
4
public abstract SubMenu setHeaderTitle(CharSequence title)
普通
设置子菜单的显示标题
5
public abstract SubMenu setIcon(int iconRes)
普通
设置每一个子菜单项的图标


<span style="font-size:18px;">package com.example.menu4;

import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast; public class MainActivity extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) { // 显示菜单
SubMenu fileMenu = menu.addSubMenu("文件"); // 子菜单
SubMenu editMenu = menu.addSubMenu("编辑"); // 子菜单
fileMenu.add(1000, 1, 1, "新建") ; // 子菜单项
fileMenu.add(1000, 2, 2, "打开") ; // 子菜单项
fileMenu.add(1000, 3, 3, "保存") ; // 子菜单项
editMenu.add(1000, 4, 4, "撤消"); // 子菜单项
editMenu.add(1000, 5, 5, "恢复"); // 子菜单项
return true ;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) { // 选中某个菜单项
switch (item.getItemId()) { // 推断菜单项ID
case 1:
Toast.makeText(this, "您选择的是“加入联系人”项。", Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(this, "您选择的是“查看详情”项。", Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(this, "您选择的是“删除信息”项。", Toast.LENGTH_LONG).show();
break;
case 4:
Toast.makeText(this, "您选择的是“另存为”项。 ", Toast.LENGTH_LONG).show();
break;
case 5:
Toast.makeText(this, "您选择的是“编辑”项。", Toast.LENGTH_LONG).show();
break;
}
return false;
}
}
</span>

相同。子菜单的选项也能够使用xml文件进行配置


<span style="font-size:18px;">    <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/group1">
<item android:id="@+id/item1" android:title="新建"></item>
<item android:id="@+id/item2" android:title="打开"></item>
<item android:id="@+id/item3" android:title="保存"></item>
</group>
</menu>
</span>
<span style="font-size:18px;"><?

xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group android:id="@+id/group1">
<item android:id="@+id/item4" android:title="撤销"></item>
<item android:id="@+id/item5" android:title="恢复"></item>
</group> </menu>
</span>

JAVA文件


<span style="font-size:18px;">package com.example.menu5;

import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast; public class MainActivity extends Activity { @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(MainActivity.this, "新建", 2).show();
break;
case R.id.item2:
Toast.makeText(MainActivity.this, "打开", 2).show();
break;
case R.id.item3:
Toast.makeText(MainActivity.this, "保存", 2).show();
break;
case R.id.item4:
Toast.makeText(MainActivity.this, "撤销", 2).show();
break;
case R.id.item5:
Toast.makeText(MainActivity.this, "恢复", 2).show();
break; default:
break;
} return true;
} @Override
public void onOptionsMenuClosed(Menu menu) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
SubMenu fileMenu = menu.addSubMenu("文件");
SubMenu editMenu = menu.addSubMenu("编辑");
getMenuInflater().inflate(R.menu.file_menu, fileMenu);//将文件子菜单与xml绑定
getMenuInflater().inflate(R.menu.edit_menu, editMenu);//将编辑子菜单与xml绑定
return true;
} }
</span>






在android中菜单是不可获取的一部分。掌握好菜单的使用是android开发人员的必备技能.

下节预报
AnalogClock与DigitalClock时钟组件


从零開始学android&lt;Menu菜单组件.三十.&gt;的更多相关文章

  1. 从零開始学android&lt;TabHost标签组件.二十九.&gt;

    TabHost主要特点是能够在一个窗体中显示多组标签栏的内容,在Android系统之中每一个标签栏就称为一个Tab.而包括这多个标签栏的容器就将其称为TabHost.TabHost类的继承结构例如以下 ...

  2. 从零開始学android&lt;SeekBar滑动组件.二十二.&gt;

    拖动条能够由用户自己进行手工的调节,比如:当用户须要调整播放器音量或者是电影的播放进度时都会使用到拖动条,SeekBar类的定义结构例如以下所看到的: java.lang.Object    ↳ an ...

  3. 从零開始学android&lt;Bitmap图形组件.四十七.&gt;

    android.graphics.Bitmap(位图)是Android手机中专门提供的用于操作图片资源的操作类,使用此类能够直接从资源文件之中进行图片资源的读取.而且对这些图片进行一些简单的改动. 经 ...

  4. 从零開始学android&lt;数据存储(1)SharedPreferences属性文件.三十五.&gt;

    在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...

  5. 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)

    RelativeLayout相对布局 RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...

  6. 从零開始学android&lt;mediaplayer自带播放器(视频播放).四十九.&gt;

    MediaPlayer除了能够对音频播放之外,也能够对视频进行播放,可是假设要播放视频仅仅依靠MediaPlayer还是不够的.还须要编写一个能够用于视频显示的空间,而这块显示空间要求能够高速的进行G ...

  7. 从零開始学android&lt;SlidingDrawer 隐式抽屉.三十三.&gt;

    SlidingDrawer是一种抽屉型的组件.当用户选择打开此抽屉之后,会得到一些能够使用的"程序集".这样当一个界面要摆放多个组件的时候,使用此组件就能够非常好的解决布局空间紧张 ...

  8. 从零開始学android&lt;ImageSwitcher图片切换组件.二十六.&gt;

    ImageSwitcher组件的主要功能是完毕图片的切换显示,比如用户在进行图片浏览的时候.能够通过button点击一张张的切换显示的图片,并且使用ImageSwitcher组件在每次切换的时候也能够 ...

  9. 从零開始学android&lt;RelativeLayout相对布局.十六.&gt;

    相对布局管理器指的是參考某一其它控件进行摆放,能够通过控制,将组件摆放在一个指定參考组件的上.下.左.右等位置,这些能够直接通过各个组件提供的属性完毕. 以下介绍一下各个方法的基本使用 No. 属性名 ...

随机推荐

  1. IOS7上呈现IOS6的水滴刷新效果

    IOS7上呈现IOS6的水滴刷新效果    到了IOS7 发现自带的刷新 不再是 IOS6自带的水滴效果了 你是否怀念那IOS6的效果呢? 哈哈,于是收集各方资料,整理编写一个属于自己的水滴刷新效果 ...

  2. 查询mysql哪些表正在被锁状态

    1.查进程,主要是查找被锁表的那个进程的ID SHOW PROCESSLIST; 2.kill掉锁表的进程ID KILL   10866;//后面的数字即时进程的ID

  3. 利用FFT 计算生成离散解析信号

    通常我们用到的信号都是实值信号,但是我们可以根据这个实信号构造出一个复信号,使得这个复信号只包含正频率部分,而且这个复信号的实部正好就是我们原来的实值信号.简单的推导可知,复信号的虚部是原信号的希尔伯 ...

  4. perl encode_utf8必须用在utf8环境

    [root@wx03 mojo]# cat test.pl use Mojolicious::Lite; use JSON qw/encode_json decode_json/; use Encod ...

  5. ASP.NET - 页面传值 Request.QuerString[].ToString();

    public partial class WebForm2 : System.Web.UI.Page { BLL.CategoryBLL categorybll = new CategoryBLL() ...

  6. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  7. Swift - 创建并设置背景(SpriteKit游戏开发)

    1,先把背景图片bg.jpg,bg@2x.jpg直接拖进Images.xcassets中 2,设置如下代码(背景图直接铺满整个屏幕) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  8. CodeForce 439C Devu and Partitioning of the Array(模拟)

     Devu and Partitioning of the Array time limit per test 1 second memory limit per test 256 megabytes ...

  9. Python中列表的常用操作

    只整理重要常用的操作: append():尾部追加元素,参数只能为一个. extend():用列表扩展列表,参数为列表. insert():在指定位置插入元素,第一个参数为插入位置,第二个为参数为插入 ...

  10. 【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API

    原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 ...