0

我是 android 新手,我一直在为我的应用程序苦苦挣扎。我创建了一个迷宫类型的游戏。主要活动从一个启动屏幕开始,该屏幕有一个小简介和一个用于启动游戏的按钮,它只是创建一个在其上绘制精灵和迷宫的表面视图。这是我遇到的第一个问题。由于某种原因,我的应用程序占用了我手机上大约 50% 的 CPU。我认为这可能是因为我在表面视图的 onDraw 方法中反复在屏幕上绘制矩形:

protected void onDraw(Canvas canvas) {
   canvas.drawColor(Color.BLACK);
// draws the blocks and the droid sprite
for (int i = 0; i < blocks.size(); i++) {
        MapBlock piece = blocks.get(i);
        canvas.drawRect(piece.getBlock(), piece.getColor());
        canvas.drawRect(getRectWithinRect(piece.getBlock()), piece.getInnerRectColor());
    }
    droid.draw(canvas);
}

如果我移动绘图代码或者只是在迷宫没有留在屏幕上时才这样做。有一个更好的方法吗?我不是 100% 确定我是否在正确的地方做这件事。

我的第二个问题发生在用户获胜时。获胜后,我使用以下方法更改活动:

Intent intent = new Intent();         
intent.setClass(getContext(), FinishActivity.class); 
intent.putExtra("code", 1);
((Activity)getContext()).startActivity(intent);

切换似乎工作正常。我切换到一个只有一些“你赢了”文本和一个退出按钮的活动。这是除 onDestroy 和 onStop 之外的类中唯一的代码:

public class FinishActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.d("tga", "made it herE!");
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // making it full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.finish);


}

当您点击新屏幕的任何部分并且退出按钮没有响应时,应用程序会崩溃。我究竟做错了什么?

4

1 回答 1

0

安装的

intent.putExtra("code", 1);
((Activity)getContext()).startActivity(intent);

把这个

intent.putExtra("code", 1);
((AppCompatActivity)getContext()).startActivity(intent);
于 2019-09-09T14:35:30.693 回答