数独游戏app制作拆解(之五)——特殊功能实现&存在问题

app有些看不见,但又必须使用的功能,比如文件保存,读取,播放声音等。本app使用的功能如下:

一、判断文件是否存在。由于需要保证app再次打开的时候保存上次解题进度,所以启动app的时候需要判断是否有保存的文件,第一次使用本app的时候没有文件,如果读取会出错,所以要判断一下,有则读取,没有的话空白。代码:

 File file = new File(getFilesDir(), "1000.txt");
        if (file.exists()) {
            readFileAndSplit();//读取数据并填到格子内
            //判断,如果非空白格数量大于20个视为解答状态,未填写位置字体红色。否则视频编辑状态,字体黑色。
            int i = 0;
            for (TextView textView:textViews){
                if(textView.getText().toString()!=""){
                    i++;
                }
            }
            if(i>20){
                chushihua();//设置可填写位置字体红色,背景黄色
            }else{
                for (TextView textView:textViews){
                    textView.setTextColor(Color.BLACK);//非空白数量小于20,视为编辑状态,黑色字体。
                }
            }

        }else {//文件不存在,黑色字体。第一次使用本app的情况。
            for(TextView textView:textViews){
                textView.setTextColor(Color.BLACK);
            }
        }
getFilesDir()用法见前面文章。

这里有个额外判断,如果解题区内的数字超过20个,判定为解题状态,否则认为是编辑状态,主要功能就是再填写数字的颜色。

二、播放声音。游戏没声音也挺单调的,所以需要添加声音,比如填写数字后播放,游戏完成后播放声音。android-app-res-raw

音频文件位置:android-app-res-raw,如图:

代码很散,不好写,详见例程文章:

Androidstudio点击按钮播放声音-优快云博客

三、使用自定义字体。如图,上面的字体就是自定义的:

字体文件位置:android-app-asset,如图:

在Oncreate里面添加下面代码即可:

        Typeface typeface= Typeface.createFromAsset(getAssets(),"KUNSTLER.TTF");
        textView1000.setTypeface(typeface);

目前此app存在以下问题:

1、二次启动app读取之前进度的时候,已经填写的数字都变成黑色,再进行重玩已经不是原来的题目,其实可以改,现在懒的改。

2、同上问题,已经填写完9个数字的数字候选区本来应该前背景色相同,起到提示作用,但再次启动app的时候,所有数字候选区数字都是黑色。也是懒的改。

3、当9个数字都找到后,数字候选区内的数字只是设置了前背景色相同,功能并没有失效,再填写空白格子后,会提示重复。这个不知道怎么改,使用的是内部匿名类。

4、未做不同屏幕适配,所以才叫XX专用版,目前最适合的屏幕是6.7寸,小的屏幕会显示不全。本来就是做着完的,懒得适配。不得不说:AS修改UI太麻烦了,非常非常麻烦。

5、未做正常app的一切什么版权,权限啥的显示和请求。

6、其他小问题,如:版本、图标啥的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kim5659

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值