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、其他小问题,如:版本、图标啥的。