《Android编程权威指南》项目一 地理知识问题(文末送pdf)
2020-05-10 04:13
1276 查看
最近趁着春节假期,打算系统的再扫一遍androidd知识,学习《Android编程权威指南第三版》,前6章讲了一个项目,关于地理知识问题解答
效果如下
如果作弊了,会检测到
功能点
新知识点
- ShowAnswer按钮点击后会消失的动画代码如下
int cx = mShowAnswerButton.getWidth() / 2; int cy = mShowAnswerButton.getHeight() / 2; float radius = mShowAnswerButton.getWidth(); // 参数为 目标,中心X坐标,中心Y坐标,开始宽度,结束宽度 Animator animator = ViewAnimationUtils.createCircularReveal(mShowAnswerButton, cx, cy, radius, 0); animator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { mShowAnswerButton.setVisibility(View.INVISIBLE); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); animator.start();
- 作弊能被检测到,方法是,在从QuizActivity界面点击cheat跳转到CheatActivity时,使用startIntentForResult()启动Intent,此时会携带一个请求码(这个请求码会自动返回到QuizActivity),然后在CheatActivity中,如果点击了ShowAnswer按钮,就修改请求码即可,然后返回到QuizActivity处理
在QuizActivity中跳转
startActivityForResult(intent,REQUEST_CODE_CHEAT);
在CheatActivity中设置
mShowAnswerButton.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) //动画在LOLLIPOP版本后才加入 @Override public void onClick(View v) { if (mAnswerIsTrue) { mAnswerTextView.setText(R.string.true_button); } else { mAnswerTextView.setText(R.string.false_button); } setAnswerShownResult(true); ...
private void setAnswerShownResult(boolean isAnswerShown) { Intent data = new Intent(); data.putExtra(EXTRA_ANSWER_SHOWN, isAnswerShown); setResult(RESULT_OK,data); }
然后被set过的data返回到QuizActivity中,进行检测
//当startForResult带回的数据含有RESULT_OK和data有数据时,判定为cheat @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != Activity.RESULT_OK) { return; } //判定是否进入的Cheat界面 if (requestCode == REQUEST_CODE_CHEAT) { //判定是否点击了ShowAnswer按钮 if (data == null) { return; } mIsCheater = CheatActivity.wasAnswerShown(data); } }
mIsCheater 即为是否作弊的标识 ,这里的wasAnswerShown在CheatActivity中,是一个静态方法
public static boolean wasAnswerShown(Intent result) { return result.getBooleanExtra(EXTRA_ANSWER_SHOWN, false); }
除此之外,代码中还有解决横屏的问题等,书中也有其他要求,比如设置一个自定义的Toast,最多作弊三次等等,不过这些都过于简单,就没有再实现了
如何调试,如何查看内存,如何适配版本等也在前6章有所介绍,和《第一行代码》比起来,这本书可能不适合纯小白,但是如果你有一点基础,那么看这本书一定让你收获颇丰!!
关注公众号 【小松的读书与成长】,回复“ 权威指南” 即可获得pdf
ps:不想关注也行,毕竟我也是从网上搜到的
链接:https://pan.baidu.com/s/1fV83_CgbSfmHXsNwOx011w
提取码:j45a
相关文章推荐
- PDF合同模板项目----问题列表
- [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题
- struts2的一点知识(引入别人的项目,path问题,package的名字不能一样哦 )
- [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题
- 如何转换pdf文档为word文档--先标记下,本周把这个问题知识掌握
- vue项目中使用pdf.js,通过解析后台base64格式文件解决跨域问题
- 报表常见问题(二)ireport引入到项目无法解析字体及pdf无法显示中文的解决方案
- Vue项目pdf(base64)转图片遇到的问题及解决方法
- weblogic服务上传word等文件直接打开问题解决 博客分类: web应用服务器 在weblogic上发布的web项目,测试中发现出现当上传word、excel、pdf等文件在下载的时候出现
- 【技术知识】恶意PDF文件分析-PDFdump的问题
- 用Adobe Acrobat DC快速生成合同模板、itext导出pdf,解决项目中合同问题
- iOS 导航栏遮挡问题 --- iOS开发系列 ---项目中成长的知识七
- ios pdf相关的知识,先贴个链接,正在做这方面项目,等有些成果后回来完成这文章。
- 项目路径问题--小知识
- 动画项目中问题及解决方案(V客学院知识分享)
- 乐优商城项目总结——04商品分类知识总结(跨域问题等)
- 项目中遇到的一些知识问题等
- java项目打印pdf出现格式问题
- htmlToPDF by Pechkin ,Web项目使用时64位锁死,其他没问题