所以,我在Android Studio中制作游戏,我使用Java class作为引擎和contentView,而不是android-layout。
spaceInvadersEngine = new SpaceInvadersEngine(this, size.x, size.y);
setContentView(spaceInvadersEngine);现在,当我加载新的关卡时,我需要一些东西来弹出并使屏幕不可点击,直到关卡加载所有的数据。(在我的脑海中,有一个类似于横幅的东西,它将出现在屏幕的中央)。但是,我没有用于spaceInvadersEngine的XML file,所以我不能在加载数据时放入例如可见的ImageView。
你知道怎么做吗?
发布于 2021-01-04 10:30:39
示例:
// Initialize a new ImageView widget
ImageView iv = new ImageView(getApplicationContext());
// Set an image for ImageView
iv.setImageDrawable(getDrawable(R.drawable.animal));
// set visibility to gone
iv.setVisibility(View.GONE);
// Finally, add the ImageView to your layout layout
yourLayout.addView(iv);doInBackground,你可以用来加载所有数据。加载完所有数据后,它会将返回值传递给另一个名为'onPostExecute‘的方法,在方法PreExecute上显示后,可以使用set imageView再次隐藏该方法
示例:
public class LoadImageViewWhileLoadData extends AsyncTask<Boolean,String,Boolean> {
@Override
protected void onPreExecute() {
// show your imageView
yourImageView.setVisibility = View.VISIBLE;
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Boolean... booleans) {
// your code that loads all data
// must return value that pass to onPostExecute
return null;
}
@Override
protected void onProgressUpdate(String... values) {
// you can use this method if you use progres bar instead of imageview
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Boolean aBoolean) {
// make it gone again.
yourImageView.setVisibility = View.GONE;
super.onPostExecute(aBoolean);
}
}https://stackoverflow.com/questions/65556531
复制相似问题