安卓实现简单砸地鼠游戏

效果

布局 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:id="@+id/scoreTextView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="得分:0"android:textSize="18sp" /><GridLayoutandroid:id="@+id/gridLayout"android:layout_width="match_parent"android:layout_height="match_parent"android:columnCount="3"android:rowCount="3"><ImageViewandroid:id="@+id/imageView1"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView2"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView3"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView4"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView5"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView6"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView7"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView8"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /><ImageViewandroid:id="@+id/imageView9"android:layout_width="0dp"android:layout_height="0dp"android:layout_columnWeight="1"android:layout_rowWeight="1"android:background="@mipmap/laohu" /></GridLayout></LinearLayout>

实现代码,

public class AttentionQuestionsActivity extends AppCompatActivity {private ImageView[] imageViews; // 地鼠图片数组private ImageView currentImageView; // 当前显示的地鼠图片private int score = 0; // 得分private TextView scoreTextView; // 显示得分的文本视图@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_attention_questions);initImageViews(); // 初始化地鼠图片数组scoreTextView = findViewById(R.id.scoreTextView);showNextImageView(); // 显示第一个地鼠}// 初始化地鼠图片数组private void initImageViews() {imageViews = new ImageView[9];for (int i = 0; i < imageViews.length; i++) {imageViews[i] = findViewById(getResources().getIdentifier("imageView" + (i + 1), "id", getPackageName()));imageViews[i].setVisibility(View.INVISIBLE); // 初始设置地鼠图片为不可见imageViews[i].setOnClickListener(onClickListener);}}// 点击事件监听器private View.OnClickListener onClickListener = new View.OnClickListener() {@Overridepublic void onClick(View v) {if (v == currentImageView) { // 如果点击的是地鼠increaseScore(); // 增加得分hideCurrentImageView(); // 隐藏当前地鼠showNextImageView(); // 显示下一个地鼠}}};// 增加得分private void increaseScore() {score++;scoreTextView.setText("得分:" + score); // 更新得分显示}// 隐藏当前显示的地鼠private void hideCurrentImageView() {if (currentImageView != null) {currentImageView.setVisibility(View.INVISIBLE);currentImageView = null;}}// 显示下一个地鼠private void showNextImageView() {hideCurrentImageView();SecureRandom random = new SecureRandom();int nextIndex;do {nextIndex = random.nextInt(imageViews.length);} while (imageViews[nextIndex].getVisibility() == View.VISIBLE);currentImageView = imageViews[nextIndex];currentImageView.setVisibility(View.VISIBLE);}
}

备注 以上只是简单把功能实现出来,大家有需要可以拿来改为自己想要的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Muse专业版教程:制作简谱,制作吉他谱

UP教你制作吉他谱,muse专业版吉他谱制作过程分享_哔哩哔哩_bilibili教学讲解-小宁视频制作-狂奔的琴弦软件-Muse专业版后面会分集录从零开始制作吉他谱,感兴趣的小伙伴点一波关注, 视频播放量 15457、弹幕量 1、点赞数 208、投硬币枚数 127、收藏人数 424、转发人数 59, 视频…

函数 栈帧

函数 引用式声明(函数原型):简称声明&#xff0c;指定了函数的返回值类型、函数的接受参数类型&#xff0c;这些叫函数的签名。与变量相同&#xff0c;在函数声明时编译器不会为函数分配内存。函数的返回值类型在C99之前若不指明则默认隐式转换为为int类型&#xff0c;但在C99…

DNS服务正反解析

1.正向解析 1.配置基本 1.1防火墙配置 二者都要关闭 setenforce 0 systemctl stop firewalld #关闭防火墙 yum install bind -y #下载bind软件 客户端可以不用下 1.2服务端配置静态ip&#xff0c; ip a 查看网卡 nmcli c modify ens33 ipv4.method manual ipv4.addresses …

OpenAI发布Sora模型,可根据文字生成逼真AI视频

早在2022年11月30日&#xff0c;OpenAI第一次发布人工智能聊天机器人ChatGPT&#xff0c;随后在全世界掀起了人工智能狂潮&#xff0c;颠覆了一个又一个行业。在过去的一年多的时间里&#xff0c;chatGPT的强大功能改变了越来越多人的工作和生活方式&#xff0c;成为了世界上用…

Python教程(26)——Python迭代器和生成器详解

迭代器 Python中的迭代器是一种对象&#xff0c;它可以迭代&#xff08;遍历&#xff09;一个可迭代对象&#xff08;比如列表、元组或字符串&#xff09;的元素。迭代器用于实现迭代器协议&#xff0c;即包含 __iter__() 方法和 __next__() 方法。 迭代器的工作原理是每次调…

vue watch监听

在 Vue.js 中&#xff0c;watch 是一个对象&#xff0c;用于观察和响应 Vue 实例上的数据变化。当被监视的属性发生变化时&#xff0c;watch 里的回调函数将被调用。 &#xff08;vue2&#xff09;官方文档&#xff1a;计算属性和侦听器 — Vue.js (vuejs.org) 下面是一个简单…

数据的力量:构筑现代大型网站之数据库基础与应用

目录 数据库基础知识--前言 大型网站架构特点 DBA数据库管理员 什么是数据? 数据存储 什么是数据库 数据表的概念 为什么需要mysql这样的数据库管理工具&#xff1f;★ DBMS 收费数据库与免费数据库 运维和数据库 开发与运维的不同阶段 数据库类别 数据库具体应用…

【机器学习笔记】11 支持向量机

支 持 向 量 机 &#xff08; Support Vector Machine,SVM &#xff09; 支 持 向 量 机 是 一 类 按 监 督 学 习 &#xff08; supervisedlearning&#xff09;方式对数据进行二元分类的广义线性分类器&#xff08;generalized linear classifier&#xff09;&#xff0c;其…

C#安装CommunityToolkit.Mvvm依赖

这里需要有一定C#基础&#xff0c; 首先找到右边的解决方案&#xff0c;右键依赖项 然后选择nuget管理 这里给大家扩展一下nuget的国内源&#xff08;https://nuget.cdn.azure.cn/v3/index.json&#xff09; 然后搜自己想要的依赖性&#xff0c;比如CommunityToolkit.Mvvm 再点…

学习Android的第十四天

目录 Android DatePicker 日期选择器 DatePicker 属性 和 事件 DatePicker 事件 获得 DatePicker 的值 Android TimePicker 时间选择器 TimePicker 属性 TimePicker 事件 获得 TimePicker 的值 Android CalendarView 日历视图 CalendarView 属性 CalendarView 事件 …

Linux超详细笔记

文章目录 Linux学习笔记操作系统Linux初识Linux的诞生Linux内核Linux发行版 虚拟机VMware安装远程连接Linux系统FinalShellFinalShell连接Linux WSL配置UbuntuLinux常用命令1.入门2.ls命令cd命令3.pwd命令4.相对路径和绝对路径5.mkdir命令6.文件操作命令&#xff08;1&#xff…

vue打包优化,webpack的8大配置方案

vue-cli 生成的项目通常集成Webpack &#xff0c;在打包的时候&#xff0c;需要webpack来做一些事情。这里我们希望它可以压缩代码体积&#xff0c;提高运行效率。 文章目录 &#xff08;1&#xff09;代码压缩&#xff1a;&#xff08;2&#xff09;图片压缩&#xff1a;&…

[AIGC] Kafka 消费者的实现原理

在 Kafka 中&#xff0c;消费者通过订阅主题来消费数据。每个消费者都属于一个消费者组&#xff0c;消费者组中的多个消费者可以共同消费一个主题&#xff0c;实现分布式消费。每个消费者都会维护自己的偏移量&#xff0c;用于记录已经读取到的消息位置。消费者可以选择手动提交…

17.3.2.9 像素处理与内存处理之比较

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 通过第17.3.2.1节到第17.3.2.8节&#xff0c;相信读者对通过锁定内存来处理图像有了一定认识。与第17.3.1节相比较&#xff0c;可以…

代码随想录day28 Java版

134. 加油站 使用三个变量total、cur和start来记录总剩余油量、当前剩余油量和起始加油站的索引。在遍历加油站数组的过程中&#xff0c;不断更新cur为当前剩余油量&#xff0c;并根据cur的值判断是否需要更换起始加油站。 如果cur小于0&#xff0c;说明从当前起点到当前加油…

课时34:脚本交互_基础知识_子shell基础

2.1.2 子shell基础 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 场景 之前我们对于环境变量在多个shell环境中的应用进行了学习&#xff0c;那种操作量比较大。对于一些临时性的场景&#xff0c;我们在临时性的环境中&#xff…

程序的控制结构详解

程序的控制结构 结构化程序设计方法的基础 在计算机刚出现的早期&#xff0c;它的价格昂贵、内存很小、速度慢。程序员为了在很小的内存中解决大量的科学计算问题&#xff0c;并为了节省昂贵的CPU机时费&#xff0c;不得不使用巧妙的手段和技术&#xff0c;手工编写各种高效的…

目标检测算法之YOLOv5的应用实例(零售业库存管理、无人机航拍分析、工业自动化领域应用的详解)

1.YOLOv5在"零售业库存管理"领域的应用 在零售业库存管理中,YOLOv5可以帮助自动化商品识别和库存盘点过程。通过使用深度学习模型来实时识别货架上的商品,零售商可以更高效地管理库存,减少人工盘点的时间和成本。以下是一个使用YOLOv5进行商品识别的Python脚本示…

[office] Excel中函数进行计算两个日期参数差值的方法 #职场发展#学习方法#媒体

Excel中函数进行计算两个日期参数差值的方法 在excel使用中&#xff0c;如果想计算两个日期参数的差值&#xff0c;该用什么函数和如何使用呢?今天&#xff0c;小编就教大家在Excel中函数进行计算两个日期参数差值的方法。 Excel中函数进行计算两个日期参数差值的步骤 在excel…

javascript中的prototype;javascript中的原型链

文章目录 深入理解JavaScript原型链1. 什么是原型链&#xff1f;2. 原型链的结构3. 如何访问原型链&#xff1f;4. 示例演示原型链5. 原型链与继承6. 实际应用场景 深入理解JavaScript原型链 1. 什么是原型链&#xff1f; 在JavaScript中&#xff0c;每个对象都有一个原型&am…