安卓开发2048不显示游戏界面的百分百解决方法

学习安卓UI开发的时候一定少不了做2048这款游戏来练手,从网上的极客资源学习下来或者是下载的其他的工程都会出现一个问题,在低版本的安卓手机上可以完美运行,但是换到安卓高版本的手机就显示不出界面。对于这个网上有很多的解决方法,有些重写了startgame()函数,在代码的改写方面一些大佬说的很简单,但是这对于新手而言好像不容易理解。这里我给出大家一个基于极客的源码的调整的方案。可以百分百解决界面不显示的问题。

如果解决了你的困扰,可以点个赞支持一下我。

代码改动:在GameView这个class中写一个方法getCardWitch()来返回卡片的尺寸。

private int getCardWitch(){
        //声明屏幕对象
        DisplayMetrics displayMetrics;
        displayMetrics = getResources().getDisplayMetrics();
        int cardWitch;
        //提取屏幕宽
        cardWitch = displayMetrics.widthPixels;
        return (cardWitch-10)/4;
    }

然后在initGameView()中调用addCards()。

private void initGameView(){
        setColumnCount(4);
        setBackgroundColor(0Xff28004D);
        addCards(getCardWitch(),getCardWitch());
        setOnTouchListener(new OnTouchListener() {
             ...............................
             ...........................
        });
    }

注意这里initGameView()中不要调用startGame(),否则你会发现游戏会闪退,因为在游戏逻辑初始化之前加入startGame()时GameView的构造函数析构了以后才会调用那句计分清零。(startGame中的第一句)

在onSizeChanged()中进行startGame(),这时候就不用addCards()了。

protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        startGame();
    }

亲测安卓10有效运行的代码改动,当然更改的方法不止一种,我只是给大家提供一种思路。希望大家集思广益可以提供更好修改策略

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值