Android 小闹钟程序
最近写了个闹钟的程序,看到SharedPreferences在一个程序中可以共享数据,SharedPreferences是一个轻量级的键值存储机制,只可以存储基本数据类型。我就拿来用用,没想到SharedPreferences太好了,真是轻量级的保存数据的好的工具,比sqlite好用多了!以后我又多了一种编程思想了,呵呵,所以现在分享给大家,特别注意这点:这个无法直接在多个程序间共享Preferences数据。程序关闭再打开时间仍然保留你上次设置的时间。这就是Preferences的作用!特别声明:想要源码的请在博客的留言版中留下邮箱。转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6705902
大家也可以去csdn下载,下载地址:
http://download.csdn.net/source/3536834
程序欢迎界面: 点击设置闹钟界面:

点击闹钟设置中的设置后的界面: 闹钟时间到了弹出dialog:

设置重复想起闹钟后的界面: 点击返回键弹出的提示:

下面请看代码:
一、MainActivity中的代码:
package com.cn.daming; import java.util.Calendar; import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast; public class MainActivity extends Activity {
TextView setTime1;
TextView setTime2;
TextView setTime3;
Button mButton1;
Button mButton2;
Button mButton3;
Button mButton4;
Button mButton5;
Button mButton6; String time1String = null;
String time2String = null;
String time3String = null;
String defalutString = "目前无设置"; AlertDialog builder = null;
Calendar c=Calendar.getInstance(); @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //取得活动的Preferences对象
SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);
time1String = settings.getString("TIME1", defalutString);
time2String = settings.getString("TIME2", defalutString);
time3String = settings.getString("TIME3", defalutString); InitButton1();
InitButton2();
InitButton3();
InitButton4();
InitButton5();
InitButton6(); setTime1.setText(time1String);
setTime3.setText(time2String);
setTime2.setText(time3String);
} public void InitButton1()
{
setTime1=(TextView) findViewById(R.id.setTime1);
mButton1=(Button)findViewById(R.id.mButton1);
mButton1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
c.setTimeInMillis(System.currentTimeMillis());
int mHour=c.get(Calendar.HOUR_OF_DAY);
int mMinute=c.get(Calendar.MINUTE); new TimePickerDialog(MainActivity.this,
new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker view,int hourOfDay,
int minute)
{
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY,hourOfDay);
c.set(Calendar.MINUTE,minute);
c.set(Calendar.SECOND,);
c.set(Calendar.MILLISECOND,); Intent intent = new Intent(MainActivity.this, CallAlarm.class);
PendingIntent sender=PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,
c.getTimeInMillis(),
sender
);
String tmpS=format(hourOfDay)+":"+format(minute);
setTime1.setText(tmpS); //SharedPreferences保存数据,并提交
SharedPreferences time1Share = getPreferences();
SharedPreferences.Editor editor = time1Share.edit();
editor.putString("TIME1", tmpS);
editor.commit(); Toast.makeText(MainActivity.this,"设置大明闹钟时间为"+tmpS,
Toast.LENGTH_SHORT)
.show();
}
},mHour,mMinute,true).show();
}
});
} public void InitButton2()
{
mButton2=(Button) findViewById(R.id.mButton2);
mButton2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, CallAlarm.class);
PendingIntent sender=PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am =(AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(sender);
Toast.makeText(MainActivity.this,"大明闹钟时间删除",
Toast.LENGTH_SHORT).show();
setTime1.setText("目前无设置"); SharedPreferences time1Share = getPreferences();
SharedPreferences.Editor editor = time1Share.edit();
editor.putString("TIME1", "目前无设置");
editor.commit();
}
});
} public void InitButton3()
{
setTime3=(TextView) findViewById(R.id.setTime5);
mButton3=(Button)findViewById(R.id.mButton5);
mButton3.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
c.setTimeInMillis(System.currentTimeMillis());
int mHour=c.get(Calendar.HOUR_OF_DAY);
int mMinute=c.get(Calendar.MINUTE); new TimePickerDialog(MainActivity.this,
new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker view,int hourOfDay,
int minute)
{
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY,hourOfDay);
c.set(Calendar.MINUTE,minute);
c.set(Calendar.SECOND,);
c.set(Calendar.MILLISECOND,); Intent intent = new Intent(MainActivity.this, CallAlarm.class);
PendingIntent sender=PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,
c.getTimeInMillis(),
sender
);
String tmpS=format(hourOfDay)+":"+format(minute);
setTime3.setText(tmpS); //SharedPreferences保存数据,并提交
SharedPreferences time2Share = getPreferences();
SharedPreferences.Editor editor = time2Share.edit();
editor.putString("TIME2", tmpS);
editor.commit(); Toast.makeText(MainActivity.this,"设置大明闹钟时间为"+tmpS,
Toast.LENGTH_SHORT)
.show();
}
},mHour,mMinute,true).show();
}
});
} public void InitButton4()
{
mButton4=(Button) findViewById(R.id.mButton6);
mButton4.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, CallAlarm.class);
PendingIntent sender=PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am =(AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(sender);
Toast.makeText(MainActivity.this,"大明闹钟时间删除",
Toast.LENGTH_SHORT).show();
setTime3.setText("目前无设置"); //SharedPreferences保存数据,并提交
SharedPreferences time2Share = getPreferences();
SharedPreferences.Editor editor = time2Share.edit();
editor.putString("TIME2", "目前无设置");
editor.commit();
}
});
} public void InitButton5()
{
setTime2=(TextView) findViewById(R.id.setTime2);
LayoutInflater factory = LayoutInflater.from(this);
final View setView = factory.inflate(R.layout.timeset,null);
final TimePicker tPicker=(TimePicker)setView
.findViewById(R.id.tPicker);
tPicker.setIs24HourView(true); final AlertDialog di=new AlertDialog.Builder(MainActivity.this)
.setIcon(R.drawable.clock)
.setTitle("设置")
.setView(setView)
.setPositiveButton("确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
EditText ed=(EditText)setView.findViewById(R.id.mEdit);
int times=Integer.parseInt(ed.getText().toString())
*;
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY,tPicker.getCurrentHour());
c.set(Calendar.MINUTE,tPicker.getCurrentMinute());
c.set(Calendar.SECOND,);
c.set(Calendar.MILLISECOND,); Intent intent = new Intent(MainActivity.this,
CallAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP,
c.getTimeInMillis(),times,sender);
String tmpS=format(tPicker.getCurrentHour())+":"+
format(tPicker.getCurrentMinute());
String subStr = "设置大明闹钟时间为"+tmpS+
"开始,重复间隔为"+times/+"秒";
setTime2.setText("设置大明闹钟时间为"+tmpS+
"开始,重复间隔为"+times/+"秒"); //SharedPreferences保存数据,并提交
SharedPreferences time3Share = getPreferences();
SharedPreferences.Editor editor = time3Share.edit();
editor.putString("TIME3", subStr);
editor.commit(); Toast.makeText(MainActivity.this,"设置大明闹钟为"+tmpS+
"开始,重复间隔为"+times/+"秒",
Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
}
}).create(); mButton5=(Button) findViewById(R.id.mButton3);
mButton5.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
c.setTimeInMillis(System.currentTimeMillis());
tPicker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));
tPicker.setCurrentMinute(c.get(Calendar.MINUTE));
di.show();
}
});
} public void InitButton6()
{
mButton6=(Button) findViewById(R.id.mButton4);
mButton6.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, CallAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(
MainActivity.this,, intent, );
AlarmManager am;
am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(sender);
Toast.makeText(MainActivity.this,"闹钟时间删除",
Toast.LENGTH_SHORT).show();
setTime2.setText("目前无设置");
//SharedPreferences保存数据,并提交
SharedPreferences time3Share = getPreferences();
SharedPreferences.Editor editor = time3Share.edit();
editor.putString("TIME3", "目前无设置");
editor.commit();
}
});
} @Override
public boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){
builder = new AlertDialog.Builder(MainActivity.this)
.setIcon(R.drawable.clock)
.setTitle("温馨提示:")
.setMessage("您是否要退出大明闹钟程序!!!")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
MainActivity.this.finish();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
builder.dismiss();
}
}).show();
}
return true;
} private String format(int x)
{
String s=""+x;
if(s.length()==) s=""+s;
return s;
}
}
二、CallAlarm中的代码:
package com.cn.daming; import android.content.Context;
import android.content.Intent;
import android.content.BroadcastReceiver;
import android.os.Bundle; public class CallAlarm extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Intent i = new Intent(context, AlarmAlert.class); Bundle bundleRet = new Bundle();
bundleRet.putString("STR_CALLER", "");
i.putExtras(bundleRet);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
三、AlarmAlert中的代码:
package com.cn.daming; import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle; public class AlarmAlert extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
new AlertDialog.Builder(AlarmAlert.this)
.setIcon(R.drawable.clock)
.setTitle("大明闹钟响了!!")
.setMessage("快完成你制定的计划吧!!!")
.setPositiveButton("关掉它",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
AlarmAlert.this.finish();
}
})
.show();
}
}
四、main.xml布局文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/other"
>
<DigitalClock
android:id="@+id/dClock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="@drawable/blue"
android:layout_x="70px"
android:layout_y="32px"
>
</DigitalClock>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title3"
android:textSize="20sp"
android:textColor="@drawable/black"
android:layout_x="10px"
android:layout_y="104px"
>
</TextView>
<Button
android:id="@+id/mButton1"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button1"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="102px"
>
</Button> <TextView
android:id="@+id/setTime1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_default"
android:textColor="@drawable/red"
android:textSize="16sp"
android:layout_x="10px"
android:layout_y="149px"
>
</TextView>
<Button
android:id="@+id/mButton2"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button2"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="142px"
>
</Button> <TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title4"
android:textSize="20sp"
android:textColor="@drawable/black"
android:layout_x="10px"
android:layout_y="216px"
>
</TextView>
<Button
android:id="@+id/mButton5"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button1"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="212px"
>
</Button> <TextView
android:id="@+id/setTime5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_default"
android:textColor="@drawable/red"
android:textSize="16sp"
android:layout_x="10px"
android:layout_y="259px"
>
</TextView>
<Button
android:id="@+id/mButton6"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button2"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="252px"
>
</Button> <TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title2"
android:textSize="20sp"
android:textColor="@drawable/black"
android:layout_x="10px"
android:layout_y="326px"
>
</TextView>
<Button
android:id="@+id/mButton3"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button1"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="322px"
>
</Button> <TextView
android:id="@+id/setTime2"
android:layout_width="170px"
android:layout_height="wrap_content"
android:text="@string/str_default"
android:textColor="@drawable/red"
android:textSize="16sp"
android:layout_x="10px"
android:layout_y="369px"
>
</TextView>
<Button
android:id="@+id/mButton4"
android:layout_width="wrap_content"
android:layout_height="40px"
android:text="@string/str_button2"
android:textColor="@drawable/black"
android:textSize="18sp"
android:layout_x="190px"
android:layout_y="362px"
>
</Button> </AbsoluteLayout>
五、timeset.xml布局文件中的代码:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/layout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_text1"
android:textColor="@drawable/white"
android:textSize="16sp"
android:layout_x="10px"
android:layout_y="32px"
>
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_text2"
android:textColor="@drawable/white"
android:textSize="16sp"
android:layout_x="10px"
android:layout_y="172px"
>
</TextView>
<TimePicker
android:id="@+id/tPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="100px"
android:layout_y="12px"
>
</TimePicker>
<EditText
android:id="@+id/mEdit"
android:layout_width="52px"
android:layout_height="40px"
android:text=""
android:textSize="16sp"
android:layout_x="120px"
android:layout_y="162px"
>
</EditText>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_text3"
android:textColor="@drawable/white"
android:textSize="16sp"
android:layout_x="180px"
android:layout_y="172px"
>
</TextView>
</AbsoluteLayout>
六、string.xml中的代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, EX06_10</string>
<string name="app_name">大明原创闹钟</string>
<string name="str_button1">设置闹钟</string>
<string name="str_button2">删除闹钟</string>
<string name="str_title2">重复响起的闹钟</string>
<string name="str_title3">大明闹钟一</string>
<string name="str_title4">大明闹钟二</string>
<string name="str_default">目前无设置</string>
<string name="str_text1">开始时间</string>
<string name="str_text2">重复响起的闹钟</string>
<string name="str_text3">秒</string>
</resources>
七:color.xml中的代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="white">#FFFFFFFF</drawable>
<drawable name="other">#FF00FFF0</drawable>
<drawable name="black">#</drawable>
<drawable name="blue">#0000FF</drawable>
<drawable name="red">#FF0000</drawable>
</resources>
八、AndroidManifest.xml中的代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cn.daming"
android:versionCode=""
android:versionName="1.0">
<uses-sdk android:minSdkVersion="" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- 註冊receiver CallAlarm -->
<receiver android:name=".CallAlarm" android:process=":remote" />
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AlarmAlert"
android:label="@string/app_name">
</activity>
</application>
</manifest>
Android 小闹钟程序的更多相关文章
- 得知Android小遴选程序第七头(他们定义对话框、Gallery、ImageSwitcher)
效果如下面的: 一共一个activity和两个xml. ******当我们须要使用的组件不在setContentView()设置的布局文件里,那我们就须要使用inflate()方 ...
- Android 手机小闹钟
Android 手机小闹钟 一.这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作关闭 ...
- Android菜鸟的成长笔记(25)——可爱的小闹钟
摘要: 这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作指导滑动页面等方面.最后形成 ...
- android小程序之幸运菜谱
android小程序之幸运菜谱 前言:刚刚结束短短5天的android公开课程,收获不少,写下来记录一下吧!(因为学校校企公开课的缘故才偶然接触的android,所以只学了这几天,不喜勿喷) 一开始得 ...
- android小程序-电子钢琴-多点触控
我在第一篇博客<android小程序-电子钢琴-滑动连续响应>中实现了一个简单地7键钢琴,这几天把它又完善了一下,增加了多点触控,按键也增加了一个低音区和一个高音区,使得又可以多弹一点简单 ...
- Android 实现闹钟功能
原文地址:Android 实现闹钟功能作者:Android_Learners 一.手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以 ...
- 安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)
什么是广播机制? 简单点来说,是一种广泛运用在程序之间的传输信息的一种方式.比如,手机电量不足10%,此时系统会发出一个通知,这就是运用到了广播机制. 广播机制的三要素: Android广播机制包含三 ...
- 一个简单的Android小实例
原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台 3.安装J ...
- 介绍一款Android小游戏--交互式人机对战五子棋
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编 ...
随机推荐
- Ⅰ.AngularJS的点点滴滴--引导
AngularJS已经被很多人像炒冷饭一样炒过啦,大部分都是直接复制官方文档没有说明一些注意事项,不过什么都要从头开始吧 页面引导实例化 1.自动实例化 <html> <script ...
- 如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭?
如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭,即右键任务栏的关闭窗口失效呢?很简单,有一个小窍门就是:响应IDCANCEL消息,具体实现如下: 首先定义消息映射:ON_BN_CLICK ...
- Linux删除文件Argument list too long问题的解决方案
方法一:使用find find . -name 文件 | xargs rm -f 但文件数量过多,find命令也会出现问题: -bash: /bin/find: Argument list too l ...
- 微信上传图文消息invalid media_id hint,thumb_media_id怎么获取
微信上传图文消息thumb_media_id, thumb_media_id怎么获取, 微信群发图文消息invalid media_id hint, 微信群发图文消息40007, 40007,inva ...
- Java使用jackson问题解决
Java使用jackson问题解决 >>>>>>>>>>>>>>>>>>>>&g ...
- 防御SQL注入的方法总结
这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下 SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难 ...
- ActionLink 的一些小问题
近日为群友解答问题时遇到一个问题 由于自己以前确实没碰到过 特此记录一下 起因是群友想要用htmlhelper实现这样一个效果 <a href="我是链接" class=&q ...
- Object-C — KVO & oc通知
键值观察(KVO)是基于键值编码的一种技术. 利用键值观察可以注册成为一个对象的观察者,在该对象的某个属性变化时收到通知. 被观察对象需要编写符合KVC标准的存取方法,编写键值观察分为以下三步: (1 ...
- PAT_1018 锤子剪刀布
问题描述 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出 ...
- 图像载入 imread()[OpenCV 笔记4]
Mat imread( ); filename 载入的图像名: flags 指定加载图像的颜色类型,默认载入三通道彩色图像, 如果取枚举类型 (OpenCV3中暂时失效),则定义如下 enum{ CV ...