第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

在判斷圖片是否與空圖片相鄰這,為什么我點擊任何方塊都顯示false?

在判斷圖片是否與空圖片相鄰這,為什么我點擊任何方塊都顯示false?
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;??????? }??? }??? }

正在回答

2 回答

我這個沒有寫完,只執(zhí)行了點擊可以移到空白的地方,你那個太亂了看著頭疼,如果結(jié)構(gòu)分開可以給你看看錯誤

0 回復(fù) 有任何疑惑可以回復(fù)我~

你這個太亂了

復(fù)制我這個就行

package com.textone.pintu;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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 {

? ?/*利用二維數(shù)組創(chuàng)建若干個游戲小方塊*/
? ?private ImageView[][] iv_game_arr = new ImageView[4][4];
? ?/*游戲主界面*/
? ?private GridLayout gl_main_game;
? ?/*當(dāng)前空方塊的的實例保存*/
? ?private ImageView iv_null_ImageView;

? ?@Override
? ?protected void onCreate(Bundle savedInstanceState) {
? ? ? ?super.onCreate(savedInstanceState);
? ? ? ?setContentView(R.layout.activity_main);
? ? ? ?/*初始化游戲的若干個小方塊*/
? ? ? ?Bitmap bigBm = ((BitmapDrawable) getResources().getDrawable(R.drawable.bg)).getBitmap();//獲取一張大圖
? ? ? ?int tuWandH = bigBm.getWidth() / 4;//每個游戲小方塊的寬和高
? ? ? ?for (int i = 0; i < iv_game_arr.length; i++) {
? ? ? ? ? ?for (int j = 0; j < iv_game_arr[0].length; j++) {
? ? ? ? ? ? ? ?Bitmap bm = Bitmap.createBitmap(bigBm, j * tuWandH, i * tuWandH, tuWandH, tuWandH);//根據(jù)行和列切成若干個游戲小圖片;
? ? ? ? ? ? ? ?iv_game_arr[i][j] = new ImageView(this);
? ? ? ? ? ? ? ?iv_game_arr[i][j].setImageBitmap(bm);//設(shè)置每一個游戲小方塊的圖案
? ? ? ? ? ? ? ?iv_game_arr[i][j].setPadding(2, 2, 2, 2);//設(shè)置方塊之間的間距
? ? ? ? ? ? ? ?iv_game_arr[i][j].setTag(new GameData(i, j, bm));//綁定自定義的數(shù)據(jù)
? ? ? ? ? ? ? ?iv_game_arr[i][j].setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? ? ? ? ?@Override
? ? ? ? ? ? ? ? ? ?public void onClick(View v) {
? ? ? ? ? ? ? ? ? ? ? ?boolean flag = isHasByNullImageView((ImageView) v);
? ? ? ? ? ? ? ? ? ? ? ?Toast.makeText(MainActivity.this,"位置關(guān)系是否存在:"+flag,Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? ? ? ? ?if(flag){
? ? ? ? ? ? ? ? ? ? ? ? ? ?changeDataByImageView((ImageView) v);
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?});
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?/*初始化游戲主界面,并添加若干個小方塊*/
? ? ? ?gl_main_game = (GridLayout) findViewById(R.id.gl_main_game);
? ? ? ?for (int i = 0; i < iv_game_arr.length; i++) {
? ? ? ? ? ?for (int j = 0; j < iv_game_arr[0].length; j++) {
? ? ? ? ? ? ? ?gl_main_game.addView(iv_game_arr[i][j]);
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?/*設(shè)置第一行最后一個方塊是空的*/
? ? ? ?setNullImageView(iv_game_arr[0][3]);
? ?}

? ?/*利用動畫結(jié)束之后,交換兩個方塊的數(shù)據(jù)
? ?*
? ?* @param mImageView
? ?* ? ? ? ?點擊的方塊
? ?*/
? ?public void changeDataByImageView(final ImageView mImageView){
? ? ? ?//創(chuàng)建一個動畫,設(shè)置好方向,移動的距離
? ? ? ?TranslateAnimation translateAnimation = null;
? ? ? ?if (mImageView.getX() > iv_null_ImageView.getX()){//當(dāng)前點擊方塊在空方塊下邊
? ? ? ? ? ?//往上移動
? ? ? ? ? ?translateAnimation = new TranslateAnimation(0.1f, -mImageView.getWidth(), 0.1f, 0.1f);
? ? ? ?}else if(mImageView.getX() < iv_null_ImageView.getX()){
? ? ? ? ? ?//往下移動
? ? ? ? ? ?translateAnimation = new TranslateAnimation(0.1f, mImageView.getWidth(), 0.1f, 0.1f);
? ? ? ?}else if(mImageView.getY() > iv_null_ImageView.getY()){
? ? ? ? ? ?//往左移動
? ? ? ? ? ?translateAnimation = new TranslateAnimation(0.1f, 0.1f, 0.1f, -mImageView.getWidth());
? ? ? ?}else if(mImageView.getY() < iv_null_ImageView.getY()){
? ? ? ? ? ?//往右移動
? ? ? ? ? ?translateAnimation = new TranslateAnimation(0.1f, 0.1f, 0.1f, mImageView.getWidth());
? ? ? ?}
? ? ? ?//設(shè)置動畫的時長
? ? ? ?translateAnimation.setDuration(70);
? ? ? ?//設(shè)置動畫結(jié)束之后是否停留
? ? ? ?translateAnimation.setFillAfter(true);
? ? ? ?//設(shè)置動畫結(jié)束之后要真正的把數(shù)據(jù)交換了
? ? ? ?translateAnimation.setAnimationListener(new Animation.AnimationListener() {
? ? ? ? ? ?@Override
? ? ? ? ? ?public void onAnimationStart(Animation animation) {

? ? ? ? ? ?}

? ? ? ? ? ?@Override
? ? ? ? ? ?public void onAnimationEnd(Animation animation) {
? ? ? ? ? ? ? ?mImageView.clearAnimation();
? ? ? ? ? ? ? ?GameData mGameData = (GameData) mImageView.getTag();
? ? ? ? ? ? ? ?iv_null_ImageView.setImageBitmap(mGameData.bm);
? ? ? ? ? ? ? ?GameData mNullGameData = (GameData) iv_null_ImageView.getTag();
? ? ? ? ? ? ? ?mNullGameData.bm = mGameData.bm;
? ? ? ? ? ? ? ?mNullGameData.p_x = mGameData.p_x;
? ? ? ? ? ? ? ?mNullGameData.p_y = mGameData.p_y;
? ? ? ? ? ? ? ?setNullImageView(mImageView);//設(shè)置當(dāng)前點擊的是空方塊

? ? ? ? ? ?}

? ? ? ? ? ?@Override
? ? ? ? ? ?public void onAnimationRepeat(Animation animation) {

? ? ? ? ? ?}
? ? ? ?});
? ? ? ?//執(zhí)行動畫
? ? ? ?mImageView.startAnimation(translateAnimation);
? ?}

? ?/*
? ?* 設(shè)置某個方塊為空方塊
? ?* @param mImageView 當(dāng)前要設(shè)置為空的方塊的實例
? ?*/
? ?public void setNullImageView(ImageView mImageView) {
? ? ? ?mImageView.setImageBitmap(null);
? ? ? ?iv_null_ImageView = mImageView;
? ?}

? ?/*
? ?* 判斷當(dāng)前點擊的方塊,是否與空方塊的位置關(guān)系是相鄰關(guān)系
? ?* @param mImageView 所點擊的方塊
? ?* @return true:相鄰,false:不相鄰
? ?*/
? ?public boolean isHasByNullImageView(ImageView mImageView) {
? ? ? ?//分別獲取當(dāng)前空方塊的位置,通過x,y兩邊都差1的方式判斷
? ? ? ?GameData mNullGameData = (GameData) iv_null_ImageView.getTag();
? ? ? ?GameData mGameData = (GameData)mImageView.getTag();
? ? ? ?if (mNullGameData.y == mGameData.y&&mGameData.x+1 == mNullGameData.x){//當(dāng)前點擊方塊在空方塊的上邊
? ? ? ? ? ?return true;
? ? ? ?}else if(mNullGameData.y == mGameData.y&&mGameData.x-1 == mNullGameData.x){//當(dāng)前點擊的方塊在空方塊的下邊
? ? ? ? ? ?return true;
? ? ? ?}else if(mNullGameData.y == mGameData.y+1&&mGameData.x == mNullGameData.x){//當(dāng)前點擊的方塊在空方塊的左邊
? ? ? ? ? ?return true;
? ? ? ?}else if(mNullGameData.y == mGameData.y-1&&mGameData.x == mNullGameData.x){//當(dāng)前點擊的方塊在空方塊的右邊
? ? ? ? ? ?return true;
? ? ? ?}
? ? ? ?return false;
? ?}
? ?/*每個游戲小方塊上要綁定數(shù)據(jù)*/
? ?class GameData{
? ? ? ?/*每個小方塊的實際位置x*/
? ? ? ?public int x = 0;
? ? ? ?/*每個小方塊的實際位置y*/
? ? ? ?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 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

在判斷圖片是否與空圖片相鄰這,為什么我點擊任何方塊都顯示false?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號