安卓实现简单砸地鼠游戏

效果

布局 

<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">
    <TextView
        android:id="@+id/scoreTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="得分:0"
        android:textSize="18sp" />
    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnCount="3"
        android:rowCount="3">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView5"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView6"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android:id="@+id/imageView8"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:background="@mipmap/laohu" />

        <ImageView
            android: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; // 显示得分的文本视图

    @Override
    protected 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() {
        @Override
        public 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);
    }
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)

目录 一.浏览器渲染原理 二.渲染时间点 三.渲染流水线 1.解析html(Parse HTML) 1.1解析成DOM树(document object model) 1.2解析成CSSOM树(css object model) 2.样式计算(Recalculate Style) 3.布局(Layout) 4.分层(Layer) 5. 绘制(Paint) 6.分块(Tiling) 7. 光栅化…

永久禁止windows自动更新方法

文章目录 前言一、打开本地组策略编辑器二、禁用windows更新总结 前言 每次打开电脑&#xff0c;右下角就会弹出设备更新提示&#xff0c;看着令人烦恼&#xff0c;并且更新可能导致电脑设置发生改变甚至是卡顿&#xff0c;所以为了自己方便于是出了禁用电脑更新的办法&#x…

作用域基本使用

基本使用 1.在java编程中&#xff0c;主要的变量就是属性&#xff08;成员变量&#xff09;和局部变量 2.局部变量一般指的是在成员方法中定义的变量 3.java中作用域的分类 全局变量&#xff1a;也就是属性&#xff0c;作用域为整个类体 局部变量&#xff1a;也就是除了属性之外…

树莓派:使用mdadm为重要数据做RAID 1保护

树莓派作为个人服务器可玩性还是有点的。说到服务器&#xff0c;在企业的生成环境中为了保护数据&#xff0c;基本上都会用到RAID技术。比如&#xff0c;服务器两块小容量但高性能的盘做个RAID-1按装操作系统&#xff0c;余下的大容量中性能磁盘做个RAID-5或者RAID-6存放数据。…

七、ActiveMQ的传输协议

ActiveMQ的传输协议 一、是什么二、协议1.TCP(默认)2.NIO3.AMQP4.STOMP5.SSL6.MQTT7 WS 三、NIO配置案例1.修改activemq.xml2.重启3.生产者/消费者4.性能提升4.1 配置4.2 生产者/消费者 一、是什么 官网地址&#xff1a;http://activemq.apache.org/configuring-version-5-tra…

工程师日常:海丰县附城镇鹿境元宵开灯活动

海丰县附城镇鹿境元宵开灯活动 &#xff08;蔡惠进搜集整理&#xff09; 鹿境乡春节正月初十大老热&#xff0c;全县家喻户晓。为纪念先祖功德&#xff0c;在本乡车地建立蔡氏“济阳堂”大祖祠&#xff0c;并定年初十为开灯日&#xff0c;大祖开灯代代相传。凡移居外乡裔孙、“…

Arrays类及其API

Arrays是用来操作数组的一个工具类 import java.util.Arrays; import java.util.Comparator; import java.util.function.IntToDoubleFunction;public class Test {public static void main(String[] args) {//1.以字符串形式返回数组的内容int[] arr {10,20,30,40,50,60};Sy…

书生浦语大模型实战营-课程笔记(4)

微调分为两种&#xff0c;增量预训练和指令跟随。 指令跟随微调&#xff1a; 1.只对答案计算Loss 2.训练时数据为一问一答的形式&#xff08;input和output&#xff09; 增量预训练&#xff1a; 只需要output的数据进行训练 xtuner:微调框架 操作部分的笔记参考git上的文档…

网页端、APP端页面国际化-多语言翻译与半自动比对程序

网站和APP国际化翻译过程中&#xff0c;对多语言配置文件的翻译与比对模板&#xff0c;记录工作经验。 最佳的模式是&#xff1a;前期尽量做好全部菜单按钮多语言TS配置文件&#xff0c;网页端、APP端和管理端使用同一个配置文件&#xff0c;比如buttons.ts,menus.ts&#xff…

PHP服务商微信支付分支付(需确认模式)

//查询支付分是否支付 public function serviceorderServiceorder($out_order_no) {$setting [];$service_id $setting[service_id];$sub_mchid $setting[mchid];$ps "/v3/payscore/partner/serviceorder?service_id${service_id}&sub_mchid${sub_mchid}&out…

【PyQt】14-绘图-QPainter

文章目录 前言一、QPainter二、绘制文本-drawTextQt里面的文本对齐方式 运行结果 三、像素点总结 前言 1、学会画图方法 一、QPainter 通常可以绘制文本、各种图形&#xff08;点、线、椭圆、弧、扇形、多边形等等&#xff09;、图像。 必须在painrEvent事件方法中绘制各种元…

CES 2024:NVIDIA 通过新的笔记本电脑、GPU 和工具提供生成式 AI

在 CES 2024 上&#xff0c;NVIDIA 推出了一系列硬件和软件&#xff0c;旨在释放 Windows 11 PC 上生成式 AI 的全部潜力。 在 PC 上本地运行生成式 AI 对于隐私、延迟和成本敏感型应用程序至关重要。在 CES 上&#xff0c;NVIDIA 将在整个技术堆栈中带来新的创新&#xff0c;…

MATLAB导出图程序

本文将以代码的形式快速介绍MATLAB导出图到Paper 1 从simulation导出数 2 与simulation同源文件夹下创建导图m文件 代码如下&#xff1a; % 实验后的数据处理用 M-文件 % clear all % 清空工作空间 % close all      % 关闭所有图形窗口 % load adp.mat …

双指针算法+例题

1、性质 双指针算法&#xff0c;实质上是把朴素算法O&#xff08;n^2),发现一些性质&#xff0c;转换成 O&#xff08;N&#xff09;时间复杂度。 2、图解核心思想 3、代码模板 for(int i0,j0;i<n;i) {while(j<i && check(i,j)) j;//每道题目的具体逻辑 } 4…

对树莓派上配置mdadm的一些补充

1、如果要重新配置该如何回退到初始状态&#xff1f; 答&#xff1a;可参考以下指令&#xff1a; cat /proc/mdstat sudo umount /dev/md0 sudo mdadm --stop /dev/md0 sudo mdadm --zero-superblock /dev/sda sudo mdadm --zero-superblock /dev/sdb sudo nano /etc/fstab&a…

ModuleNotFoundError: No module named ‘torchvision.models.utils‘报错的一种解决方法

最近在做一个BEV项目&#xff0c;在配置环境的时候&#xff0c;遇到了报错的一个问题&#xff1a; ModuleNotFoundError: No module named ‘torchvision.models.utils’ 我开始以为是我没有安装torchvision pip install torchvision -i http://pypi.douban.com/simple输入这…

CSS-基础-MDN文档学习笔记

CSS构建基础 查看更多学习笔记&#xff1a;GitHub&#xff1a;LoveEmiliaForever MDN中文官网 CSS选择器 选择器是什么 CSS 选择器是 CSS 规则的第一部分&#xff0c;它用来选择HTML元素&#xff0c;选择器所选择的元素&#xff0c;叫做选择器的对象 选择器列表 如果有多…

实战 | 使用CNN和OpenCV实现数字识别项目(步骤 + 源码)

导 读 本文主要介绍使用CNN和OpenCV实现数字识别项目,含详细步骤和源码。 前 言 在当今世界,深度学习和图像处理技术正在各个应用领域得到利用。在这篇博文中,我们将使用卷积神经网络 (CNN) 和 OpenCV 库完成数字识别项目。我们将逐步掌握该项目如何执行。 项目准…

安装 SEED-XDS560v2 Driver.exe

安装 SEED-XDS560v2 Driver.exe References CCS 5.5.0.00077 安装目录 D:\ti\ccsv5\ SEED-XDS560v2 Driver.exe 安装目录 D:\ti\ccsv5\ccs_base References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

【51单片机实验笔记】开关篇(二) 矩阵按键

目录 前言原理图分析矩阵按键扫描算法 软件实现1. 矩阵键盘检测2. 简易计算器实现 总结 前言 本节内容&#xff0c;我们学习一下矩阵按键&#xff0c;它是独立按键的阵列形式&#xff0c;常见的应用即键盘。 本节涉及到的封装源文件可在《模块功能封装汇总》中找到。 本节完…