在Surfaceview上显示Alertdialog

问题描述 投票:0回答:1

我正在开发一款安卓游戏,我的SurfaceView正在渲染游戏,我想让它在玩家输掉游戏时出现Alertdialogs。

我如何在SurfaceView中使用AlertDialogs,我想在游戏结束时弹出警报对话框,此外,是否可以设计这个对话框,并以某种方式将其放大到SurfaceView上?

谢谢您

我必须遵循类。

public class GameActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        Point point=new Point();
        getWindowManager().getDefaultDisplay().getSize(point);
        setContentView(new GameSurfaceView(this,point.x,point.y));



    }

    @Override
    protected void onPostResume() {
        super.onPostResume();
        FullScreencall();
    }
    public void FullScreencall() {
//someCode
        }
    }
}


public class GameSurfaceView extends SurfaceView implements SurfaceHolder.Callback {


public GameSurfaceView(Context context,int width,int height) {
    super(context);
    widthScreen =width;
    heightScreen =height;
    mainThread=new MainThread(getHolder(),this);
    getHolder().addCallback(this);
    setFocusable(true);


}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    mainThread.setRunning(true);
    mainThread.start();
    background=new Background(BitmapFactory.decodeResource(getResources(),R.drawable.background1));
    player=new Player(BitmapFactory.decodeResource(getResources(),R.drawable.player));
    bulletStartTime=enemyStartTime=obstacleStartTime=System.nanoTime();




}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    boolean retry=true;
    while (retry){
        try{
            mainThread.setRunning(false);
            mainThread.join();

        }catch (Exception e){
            e.printStackTrace();
        }
    }

}
android android-studio android-alertdialog android-canvas surfaceview
1个回答
0
投票
  1. 我想你可以从这句话下面得到一个线索。我不知道你可以使用 Toast

    surfaceHolder.addCallback(LoginActivity.this);Toast.makeText(LoginActivity.this, "Cancel clicked", Toast.LENGTH_SHORT).show();

  2. 如果你想设计你的对话框。你可以让 自定义对话框. 最好在网上查一下。

© www.soinside.com 2019 - 2024. All rights reserved.