版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1附录拼图游戏主要代码:1)选择界面MainActivity代码packagecom.angelnet.jigsaw.view;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.Dialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.DisplayMetrics;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.Button;importandroid.widget.GridView;importandroid.widget.SimpleAdapter;importandroid.widget.Spinner;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.AdapterView.OnItemSelectedListener;importcom.angelnet.jigsaw.model.service.IMain;importcom.angelnet.jigsaw.model.service.MainImpl;publicclassMainActivityextendsActivity{ privateintscreenWidth=0;//屏幕的宽度privateintscreenHeight=0;//屏幕的高度privateSpinnerlevelSp;//等级 privateGridViewpictureGridView;//图片 privateButtonconfBtn; privatestaticfinalint[]pictureArray={R.drawable.pingtu_1_1,R.drawable.pingtu_2_2,R.drawable.pingtu_3_3,R.drawable.pingtu_4_4,R.drawable.pingtu_5_5,R.drawable.pingtu_6_6, R.drawable.pingtu_7_7,R.drawable.pingtu_8_8,R.drawable.pingtu_9_9}; privatestaticfinalintAUTHOR_INFO_ID=Menu.FIRST;//作者简介 privatestaticfinalintABOUT_ID=Menu.FIRST+1;//关于 privatestaticfinalintEXIT_ID=Menu.FIRST+2;//退出 privateIMainiMain; privateintpictureIndex=0;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);initControls();showGridView();}privatevoidinitControls(){ iMain=newMainImpl(); levelSp=(Spinner)findViewById(R.id.main_level_spinner); pictureGridView=(GridView)findViewById(R.id.main_picture_gridView); pictureGridView.setOnItemClickListener(newItemClickListener());//监听 pictureGridView.setOnItemSelectedListener(newItemSelectedListener());//选择监听 levelSp.setAdapter(iMain.getLevelAdapter(this)); confBtn=(Button)findViewById(R.id.main_confirm_btn); confBtn.setOnClickListener(btnOnClickListener);}@Override publicbooleanonCreateOptionsMenu(Menumenu){ //TODOAuto-generatedmethodstub menu.add(0,AUTHOR_INFO_ID,0,R.string.author).setShortcut('1','i').setIcon(R.drawable.author_info); menu.add(0,ABOUT_ID,0,R.string.about).setShortcut('2','a').setIcon(R.drawable.about); menu.add(0,EXIT_ID,0,R.string.exit).setShortcut('4','e').setIcon(R.drawable.exit); returnsuper.onCreateOptionsMenu(menu); } @Override publicbooleanonOptionsItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub switch(item.getItemId()){ caseAUTHOR_INFO_ID:{ onCreateDialog(AUTHOR_INFO_DIALOG).show(); returntrue; } caseABOUT_ID:{ onCreateDialog(ABOUT_DIALOG).show(); returntrue; } caseEXIT_ID:{ exitApp(); returntrue; } } returnsuper.onContextItemSelected(item); } @Override publicbooleanonKeyDown(intkeyCode,KeyEventevent){ //TODOAuto-generatedmethodstub if(keyCode==KeyEvent.KEYCODE_BACK){ exitApp(); returntrue; } returnsuper.onKeyDown(keyCode,event); } privatestaticfinalintABOUT_DIALOG=1; privatestaticfinalintAUTHOR_INFO_DIALOG=2; @Override protectedDialogonCreateDialog(intid){ //TODOAuto-generatedmethodstub switch(id){ caseABOUT_DIALOG:{ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.alert_dialog_icon); builder.setTitle(R.string.about); builder.setMessage(R.string.aboutInfo); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ } }); returnbuilder.create(); } caseAUTHOR_INFO_DIALOG:{ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.alert_dialog_icon); builder.setTitle(R.string.author); builder.setMessage(R.string.authorInfo); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ } }); returnbuilder.create(); } } returnsuper.onCreateDialog(id); } /** *显示就九空格 */ privatevoidshowGridView(){ //获取屏幕大小 DisplayMetricsdm=newDisplayMetrics();dm=this.getApplicationContext().getResources().getDisplayMetrics();screenWidth=dm.widthPixels;screenHeight=dm.heightPixels;//两列之间的边距为10pictureGridView.setColumnWidth((screenWidth-10*4)/3); SimpleAdaptersaImageItems=newSimpleAdapter(this,getAllItemsForListView(), R.layout.grid_item, newString[]{"ImageView"}, newint[]{R.id.gridItem_imgView}); pictureGridView.setAdapter(saImageItems); pictureGridView.setSelector(R.drawable.menuitemshape); } publicList<Map<String,Object>>getAllItemsForListView(){ //TODOAuto-generatedmethodstub //生成动态数组,并且传入数据 List<Map<String,Object>>imageItem=newArrayList<Map<String,Object>>(); for(inti=0;i<pictureArray.length;i++){ HashMap<String,Object>tempMap=newHashMap<String,Object>();// Bitmapbitamp=BitmapFactory.decodeResource(this.getResources(),pictureArray[i]); tempMap.put("ImageView",pictureArray[i]);// imageItem.add(tempMap); } returnimageItem; }/** *当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件 * */ privateclassItemClickListenerimplementsOnItemClickListener{ /** *@paramadapterView *TheAdapterViewwheretheclickhappened *@paramarg1 *TheviewwithintheAdapterViewthatwasclicked *@paramposition *Thepositionoftheviewintheadapter *@paramrowid *Therowidoftheitemthatwasclicked */ publicvoidonItemClick(AdapterView<?>adapterView, Viewview,intposition, longrowid){ //在本例中position=rowid pictureIndex=position; } } /** *选择监听 */ privateclassItemSelectedListenerimplementsOnItemSelectedListener{ @Override publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,intposition, longrowid){ //TODOAuto-generatedmethodstub// HashMap<String,Object>item=(HashMap<String,Object>)adapterView.getItemAtPosition(position); pictureIndex=position; } @Override publicvoidonNothingSelected(AdapterView<?>arg0){ //TODOAuto-generatedmethodstub } } /** *退出应用程序 */ privatevoidexitApp(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.question_dialog_icon); builder.setTitle("退出"); builder.setMessage("您确定要退出益智拼图吗?"); builder.setPositiveButton(R.string.confirm, newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhichButton){ MainActivity.this.finish(); } }); builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ } }); builder.create().show(); } privateView.OnClickListenerbtnOnClickListener=newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub switch(v.getId()){ caseR.id.main_confirm_btn: Bundleextras=newBundle(); extras.putInt("level",levelSp.getSelectedItemPosition()); extras.putInt("pictureIndex",pictureIndex); Intentintent=newIntent(MainActivity.this,JigsawActivity.class); intent.putExtras(extras); startActivityForResult(intent,1); break; } } };}2)游戏界面JigsawActivity代码:packagecom.angelnet.jigsaw.view;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.view.View;importandroid.widget.Button;importandroid.widget.ImageView;importandroid.widget.TextView;importcom.angelnet.jigsaw.model.widgets.JigsawView;publicclassJigsawActivityextendsActivity{ privateImageViewpreviewImgView; privateJigsawViewmJigsawView; privateTextViewlevelTV; privateTextViewstepNumTV; privateTextViewtimeTV; privateBitmapmBitmap; privateButtonstartBtn; privatebooleanisGaming=false; privatebooleanisFirstThread=false; privatebooleanisPlay=false; /** *第一次运行该Activity时,就要运行onCreate方法 **/ @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.jigsaw); initControls(); } privatevoidinitControls(){ Bundleextras=this.getIntent().getExtras(); intlevel=extras.getInt("level"); intpictureIndex=extras.getInt("pictureIndex"); previewImgView=(ImageView)findViewById(R.id.jigsaw_preview_imgview); mJigsawView=(JigsawView)findViewById(R.id.main_JigsawView); if(0==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_1); }elseif(1==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_2); }elseif(2==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_3); }elseif(3==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_4); }elseif(4==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_5); }elseif(5==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_6); }elseif(6==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_7); }elseif(7==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_8); }elseif(8==pictureIndex){ mBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.pingtu_9); } levelTV=(TextView)findViewById(R.id.jigsaw_level_tv); if(level==0){ mJigsawView.setRowCol(3,3); levelTV.setText("3X3"); }elseif(level==1){ mJigsawView.setRowCol(3,4); levelTV.setText("3X4"); }elseif(level==2){ mJigsawView.setRowCol(4,3); levelTV.setText("4X3"); }elseif(level==3){ mJigsawView.setRowCol(4,4); levelTV.setText("4X4"); } previewImgView.setImageBitmap(mBitmap); mJigsawView.setBitamp(mBitmap); stepNumTV=(TextView)findViewById(R.id.jigsaw_stepNum_tv); stepNumTV.setText(String.valueOf(mJigsawView.getStep())); timeTV=(TextView)findViewById(R.id.jigsaw_time_tv); timeTV.setText(timeParser(second)); startBtn=(Button)findViewById(R.id.jigsaw_start_btn); startBtn.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub //开始游戏 if(!isPlay){ isPlay=true; }else{ mJigsawView.setBitamp(mBitmap); } isGaming=true; second=0; mJigsawView.setStep(0); mJigsawView.setGameing(isGaming); startBtn.setText("REPLAY"); if(!isFirstThread){ isFirstThread=true; newThread(newGameRunable()).start(); } Messagemsg=newMessage(); msg.what=INIT_MESSAGE; mHandler.sendMessage(msg); } };} /** * *@paramtotalSecond *@return */ privateStringtimeParser(inttotalSecond){ StringBuffersb=newStringBuffer(); intminute=totalSecond/60; sb.append(minute); sb.append(":"); intsecond=totalSecond%60; if(second>=10) sb.append(second); else sb.append("0"+second); returnsb.toString(); } privateintsecond=0; classGameRunableimplementsRunnable{ publicvoidrun(){ //TODOAuto-generatedmethodstub while(isGaming){ try{ second++; Messagemsg=newMessage(); msg.what=TIME_MESSAGE; mHandler.sendMessage(msg);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江丽水缙云县壶镇怡亚通液压招聘14人备考题库及答案详解(易错题)
- 2026广西现代职业技术学院招聘8人备考题库及1套参考答案详解
- 2026江苏南京大学物理学院专业、技术人员招聘备考题库含答案详解(培优a卷)
- 2026广东茂名高岭科技有限公司技术部职员2名备考题库附答案详解(突破训练)
- Unit 1 At the fun park教学设计小学英语3B香港牛津(New Magic)版
- 2026中共天津市滨海新区委员会党校招聘高层次人才1人备考题库及答案详解(易错题)
- 2026湖北民族大学附属民大医院招聘专业技术人员9人备考题库完整参考答案详解
- 2026云南空港百事特商务有限公司招聘4人备考题库及参考答案详解
- 2026云南昆明巫家坝建设发展有限责任公司及下属子公司第一季度社会招聘2人备考题库含答案详解(研优卷)
- 2026山东省精神卫生中心招聘34人备考题库附答案详解(考试直接用)
- 26年类器官药敏联合基因检测用药
- 2026年北京市东城区高三二模生物试卷(含答案)
- T/CSMTNY 003-2026管输掺氢天然气质量分析与流量计量技术指南
- (2026年)压疮的预防及护理课件
- 2026届广西南宁市4月高中毕业班质量调研英语试卷(含答案无听力音频无听力原文)
- 2026年广东广州市中考模拟考试化学试卷(含答案)
- 侍茄师(雪茄服务师)初级测试题
- 初中地理教师教学能力提升培训
- 知行合一 - 社会实践•创新创业智慧树知到答案2024年江西师范大学
- 环境生态学2013课件 第三章:种群生态学
- 新能源标准化场站建设过程及效果论析
评论
0/150
提交评论