在判断图片是否与空图片相邻这,为什么我点击任何方块都显示false?

来源:-

micasa

2017-02-06 23:33

package com.micasa.test3;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;

import static android.R.attr.x;
import static android.R.attr.y;

public class MainActivity extends AppCompatActivity {
   private ImageView[] [] game_arr = new ImageView[5][5];
   private GridLayout rl_gl_game;
   private ImageView blankImageView;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       Bitmap bigBm = ((BitmapDrawable)getResources().getDrawable(R.drawable.zhi)).getBitmap();
       int bmwandh = bigBm.getWidth()/5;
       int arrwandh = getWindowManager().getDefaultDisplay().getWidth()/5;
       for (int i = 0; i <game_arr.length ; i++) {
           for (int j = 0; j <game_arr[i].length ; j++) {
               Bitmap bm = Bitmap.createBitmap(bigBm,j*bmwandh,i*bmwandh,bmwandh,bmwandh);
               game_arr[i] [j] = new ImageView(this);
               game_arr[i] [j].setLayoutParams(new RelativeLayout.LayoutParams(arrwandh,arrwandh));
               game_arr[i] [j].setImageBitmap(bm);
               game_arr[i] [j].setPadding(1,1,1,1);
               game_arr[i] [j].setTag(new GameData(x,y,bm));
               game_arr[i] [j].setOnClickListener(new OnClickListener() {
                   @Override
                   public void onClick(View v) {
                       boolean flag = isbyNullImageView((ImageView)v);

                           Toast.makeText(MainActivity.this, ""+flag, Toast.LENGTH_SHORT).show();

                   }
               });
           }
       }
       rl_gl_game = (GridLayout) findViewById(R.id.rl_gl_game);
       for (int i = 0; i <game_arr.length ; i++) {
           for (int j = 0; j <game_arr[i].length ; j++) {
               rl_gl_game.addView(game_arr[i] [j]);
           }
       }
       setNullImageView(game_arr[4] [4]);

   }
   public void setNullImageView(ImageView fillImageView){
       fillImageView.setImageBitmap(null);
       blankImageView = fillImageView;
   }
   public boolean isbyNullImageView(ImageView fillImageView){
       GameData blankGameData = (GameData) blankImageView.getTag();
       GameData fillGameData = (GameData) fillImageView.getTag();
       if (blankGameData.y==fillGameData.y&&blankGameData.x+1==fillGameData.x) {
           return true;
       }else if(blankGameData.y==fillGameData.y&&blankGameData.x-1==fillGameData.x){
           return true;
       }else if(blankGameData.x==fillGameData.x&&blankGameData.y+1==fillGameData.y) {
           return true;
       }else if(blankGameData.x==fillGameData.x&&blankGameData.y-1==fillGameData.y){
           return true;
       }
       return false;
       }

   class GameData{
       public int x = 0;
       public int y = 0;
       public Bitmap bm;
       public int p_x = 0;
       public int p_y = 0;

       public GameData(int x, int y, Bitmap bm) {
           super();
           this.x = x;
           this.y = y;
           this.bm = bm;
           this.p_x = x;
           this.p_y = y;
       }
   }

   }



写回答 关注

0回答

还没有人回答问题,可以看看其他问题

快速实现不一样的移动拼图

实现一个支持手势的移动拼图小游戏,手把手带你开发小游戏

15576 学习 · 67 问题

查看课程

相似问题