Java 如何创建用于刷新android游戏应用程序显示的功能?
我正在创建一个4合一的Android应用程序,我想创建一个功能,在游戏的每个回合显示我当前的游戏。我怎么能做到?我不知道我是否必须创建多个ImageView,或者是否可以复制一个?如何从我的MSSupport(网格图像)而不是屏幕的全局位置创建位置 我的游戏活动:Java 如何创建用于刷新android游戏应用程序显示的功能?,java,android,function,imageview,Java,Android,Function,Imageview,我正在创建一个4合一的Android应用程序,我想创建一个功能,在游戏的每个回合显示我当前的游戏。我怎么能做到?我不知道我是否必须创建多个ImageView,或者是否可以复制一个?如何从我的MSSupport(网格图像)而不是屏幕的全局位置创建位置 我的游戏活动: package com.example.puissance4; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; im
package com.example.puissance4;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.widget.ImageView;
import org.json.JSONObject;
public class GameActivity extends AppCompatActivity {
JSONObject jsonRootObject = null;
JSONObject jsonRootObject1 = null;
String IDPARTIE;
private ImageView mSupportView;
private ImageView mLogoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
String UID = getIntent().getExtras().getString("UID");
mSupportView = (ImageView) findViewById(R.id.activity_game_image_support);
mLogoView = (ImageView) findViewById(R.id.activity_game_image_logo);
System.out.println(UID);
AsyncTaskGame asyncTaskgame = new AsyncTaskGame(GameActivity.this,mLogoView, mSupportView);
asyncTaskgame.execute(UID);
if (asyncTaskgame.getStatus() == AsyncTask.Status.FINISHED) {
BackgroundStatutChange.doInBackground("UID=" + UID);
startActivity(new Intent(GameActivity.this, MainActivity.class));
}
}
static boolean refreshDisplay(String[][] my_matricsGame, String turnPlayer, int winOrNot){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
int j;
int i;
for(i=0;i<6;i++){
for(j=0;j<7;j++){
int x = 90+j*70;
int y = 175+i*70;
if(my_matricsGame[i][j].equals("1")){
//blit red token image at calculated position in mSupportView
}
else if(my_matricsGame[i][j].equals("2")){
//blit yellow token image at calculated position in mSupportView
}
}
}
if (turnPlayer.equals("1") && winOrNot == 0){
//blit "player 1's turn"
}
else if(turnPlayer.equals("2") && winOrNot == 0){
//blit "player 2's turn"
}
else if(turnPlayer.equals("0") && winOrNot == 1){
//blit "player 1 wins"
}
else if(turnPlayer.equals("0") && winOrNot == 2){
//blit "player 2 wins"
}
else if(turnPlayer.equals("0") && winOrNot == 3){
//blit "tie game"
}
return true;
}
}
package com.example.puissance4;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.os.StrictMode;
导入android.widget.ImageView;
导入org.json.JSONObject;
公共类GameActivity扩展了AppCompativity{
JSONObject jsonRootObject=null;
JSONObject jsonRootObject1=null;
第三方;
私有图像视图mSupportView;
私有图像视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_游戏);
字符串UID=getIntent().getExtras().getString(“UID”);
mSupportView=(ImageView)findViewById(R.id.activity\u game\u image\u support);
mLogoView=(ImageView)findViewById(R.id.activity\u game\u image\u徽标);
系统输出打印项次(UID);
AsyncTaskGame AsyncTaskGame=新建AsyncTaskGame(GameActivity.this,mLogoView,mSupportView);
asyncTaskgame.execute(UID);
if(asyncTaskgame.getStatus()==AsyncTask.Status.FINISHED){
背景状态更改.doInBackground(“UID=“+UID”);
startActivity(新意图(GameActivity.this、MainActivity.class));
}
}
静态布尔刷新显示(字符串[][]my_matricsGame,字符串turnPlayer,int winOrNot){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
int j;
int i;
对于(i=0;i
if(Strings[0].equals(UIDJ1)){
jsonRootObject1 = BackgroundGameRecupPlay.doInBackground("IDPARTIE=" + IDPARTIE);
try {
GRILLE = (String) jsonRootObject1.get("GRILLE");
TOURJOUEUR = (String) jsonRootObject1.get("TOURJOUEUR");
} catch (JSONException e) {
e.printStackTrace();
}
s = GRILLE;
s=s.replace("[","");//replacing all [ to ""
s=s.substring(0,s.length()-1);//ignoring last two ]]
s1 =s.split("],");//separating all by "],"
my_matricsGame = new String[s1.length][s1.length+1];//declaring two dimensional matrix for input
for(int i=0;i<s1.length;i++){
s1[i]=s1[i].trim();//ignoring all extra space if the string s1[i] has
single_int =s1[i].split(", ");//separating integers by ", "
for(int j=0;j<single_int.length;j++){
my_matricsGame[i][j]=single_int[j];//adding single values
}
}
GameActivity.refreshDisplay(my_matricsGame, TOURJOUEUR, 0);