介绍
小编给大家分享一下安卓如何实现拼图小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体内容如下
目标效果:
,
1. activity_main。xml页面:
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; RelativeLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" ,xmlns:工具=癶ttp://schemas.android.com/tools" ,android: layout_width=癿atch_parent" ,android: layout_height=癿atch_parent" ,工具:上下文=癱om.example.vivinia.puzzle.MainActivity"祝辞 , & lt; GridLayout ,android: id=癅 + id/gl_main_game" ,android: layout_width=癿atch_parent" ,android: layout_height=癿atch_parent" ,android: rowCount=?”; ,android: columnCount=?“比; ,& lt;/GridLayout> , & lt;/RelativeLayout> mainactivity
2.。java页面:
package com.example.vivinia.puzzle; , import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.GridLayout; import android.widget.ImageView; import android.widget.Toast; , public class  MainActivity extends AppCompatActivity  { ,/* * *大敌;当前动画是否正在执行 ,*/,private boolean  isAnimRun=false;/* * ,*判断游戏是否开始*/,private boolean  isGameStart=false;/* * ,*利用二维数组创建若干个游戏小方块 ,*/,private ImageView [] [], iv_game_arr =, new ImageView [3] [5];/* * ,*游戏主界面 ,*/,private GridLayout  gl_main_game;/* * ,*当前空方块的实例保存 ,*/,private ImageView  iv_null_ImageView;/* * ,*当前手势 ,*/,private GestureDetector  mDetector; , ,//非图片位置可以进行手势滑动 ,@Override ,public boolean  onTouchEvent (MotionEvent 事件),{ ,return mDetector.onTouchEvent(事件),,//手势监听 ,} , ,//在图片上可以进行手势滑动 ,@Override ,public boolean  dispatchTouchEvent (MotionEvent ev), { ,mDetector.onTouchEvent (ev); ,return super.dispatchTouchEvent (ev); ,} , ,@Override ,protected void  onCreate (Bundle savedInstanceState), { ,super.onCreate (savedInstanceState); ,mDetector=new GestureDetector(这,new GestureDetector.OnGestureListener (), { ,@Override ,public boolean 等(MotionEvent motionEvent), { ,return 假; ,} , ,@Override ,public void  onShowPress (MotionEvent motionEvent), { , ,} , ,@Override ,public boolean  onSingleTapUp (MotionEvent motionEvent), { ,return 假; ,} , ,@Override ,public boolean  onScroll (MotionEvent motionEvent, MotionEvent motionEvent1,, float v, float v1), { ,return 假; ,} , ,@Override ,public void  onLongPress (MotionEvent motionEvent), { , ,} ,/* * ,*一瞬间执行的方法 ,*/,@Override ,public boolean  onFling (MotionEvent e1, MotionEvent e2, float v, float v1), { ,int type=getDirByGes (e1.getX (), e1.getY (), e2.getX (), e2.getY ()); ,changeByDir(类型); ,return 假; ,} ,}); ,setContentView (R.layout.activity_main); ,//初始化游戏的若干个小方块 ,Bitmap bigBm=((BitmapDrawable) getresource () .getDrawable (R.drawable.puzzle_bg)) .getBitmap (); ,int everyWidth=bigBm.getWidth()/5,,//每个游戏小方块的宽和高 ,for (int 小姐:=,0;,小姐:& lt;, iv_game_arr.length;,我+ +),{ ,for (int j =, 0;, j & lt;, iv_game_arr [0] . length;, j + +), { ,Bitmap bm=Bitmap.createBitmap(我* everyWidth bigBm j * everyWidth everyWidth, everyWidth);//根据行列来切成若干个游戏小图片 ,iv_game_arr[我][j]=new ImageView(这个); ,iv_game_arr[我][j] .setImageBitmap (bm);,//设置每一个游戏小方块图案 ,iv_game_arr[我][j] .setPadding(2 2 2 2);//设置方块之间的间距 ,iv_game_arr[我][j] .setTag (new GameData (bm i, j)),,//绑定自定义的数据 ,iv_game_arr[我][j] .setOnClickListener (new View.OnClickListener (), { ,@Override ,public void  onClick (View 视图),{ ,boolean 旗帜=isHasByNullImageView ((ImageView)视图); ,如果(国旗){ ,changeDataByImageView ((ImageView)视图); ,} ,} ,}); ,} ,} ,//初始化游戏主界面,并添加若干个小方块 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullAndroid如何实现拼图小游戏