首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用XML加载屏幕- android studio

不使用XML加载屏幕- android studio
EN

Stack Overflow用户
提问于 2021-01-04 09:01:22
回答 1查看 79关注 0票数 0

所以,我在Android Studio中制作游戏,我使用Java class作为引擎和contentView,而不是android-layout

代码语言:javascript
复制
 spaceInvadersEngine = new SpaceInvadersEngine(this, size.x, size.y);
    setContentView(spaceInvadersEngine);

现在,当我加载新的关卡时,我需要一些东西来弹出并使屏幕不可点击,直到关卡加载所有的数据。(在我的脑海中,有一个类似于横幅的东西,它将出现在屏幕的中央)。但是,我没有用于spaceInvadersEngineXML file,所以我不能在加载数据时放入例如可见的ImageView

你知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 10:30:39

示例:

代码语言:javascript
复制
           // 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);

  • 需要一些东西来弹出并使屏幕不可点击,直到级别加载所有数据,你可以使用AsynTask类,它有3个方法first doInBackground,你可以用来加载所有数据。加载完所有数据后,它会将返回值传递给另一个名为'onPostExecute‘的方法,在方法PreExecute

上显示后,可以使用set imageView再次隐藏该方法

示例:

代码语言:javascript
复制
 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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65556531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档