Android的别踩白块开发,使用SurfaceView(二)

来源:互联网 发布:广电网络梅江电话 编辑:程序博客网 时间:2024/06/10 22:57
private void initView() {        mPianoTilesView = (PianoTilesView) findViewById(R.id.pianoTilesView);        mCountDownView = (CountDownView) findViewById(R.id.countTextView);        mMarkRela = (RelativeLayout) findViewById(R.id.markRela);        mCountDownView.setData(Arrays.asList("3","2","1","开始"));        mCountDownView.init();//刷新执行完后,进入下一个函数。        //这里不是监听,不需要触发事件,主线程到这里即执行。        mCountDownView.setCountDownListener(new CountDownView.CountDownListener() {            @Override            public void finish() {                mMarkRela.setVisibility(View.GONE);                mPianoTilesView.setZOrderOnTop(true);//把钢琴滑块视图顶到最高点                mPianoTilesView.startGame();            }        });        //设置游戏结束后的弹框,有结束与重开功能。        mAlertScoreDialog = new AlertScoreDialog.Builder(MainActivity.this)                .setFinishClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        Log.e("DEMO","点击点击");                        finish();                        mAlertScoreDialog.dismiss();                    }                })                .setRestartClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        mAlertScoreDialog.dismiss();                        mPianoTilesView.restart();                        mMarkRela.setVisibility(View.VISIBLE);                        mCountDownView.init();                    }                })                .builder();        //这里有一个线程一直在设置分数。        mPianoTilesView.setGameListener(new PianoTilesView.GameListener() {            @Override            public void gameEnd(final  String number) {                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        Log.e("DEMO","number == "+number);                        if(mAlertScoreDialog!=null){                            mAlertScoreDialog.setScore(number);                            mAlertScoreDialog.show();                        }                    }                });            }        });    }

mCountDownView执行开始时候的倒计时,用了scheduleAtFixedRate执行线程,是从指定时刻开始执行,而不是执行时的时刻。

非Layout型对话框,直接使用AlertDialog。
使用了Layout的对话框,可以自定义控件,实现更复杂的对话框。

0 0
原创粉丝点击