Android基于GridView的卡牌翻转小游戏

本文介绍了一个基于Android的GridView实现的翻牌匹配小游戏。游戏中有9张不同内容的卡片,通过点击实现翻转,匹配成功后卡片消失。文章详细讲述了程序逻辑、界面布局、动画设置和游戏类的实现,包括全屏自适应的GridView、卡片翻转动画、匹配成功与失败的响应。最后分享了游戏复位和结束判断的逻辑,以及参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
最近无聊,一时心血来潮,倒腾倒腾Android编程。自己略有写java基础,就不想拿起教程从头学起,直接以应用为导向,在实际应用中巩固和拓展java编程。搞个什么应用了,Hello World!没意思,突发奇想,倒腾一个翻牌的小应用。涉及的知识点比较多,不能自己闭门造车,从零开始,一句代码一句代码敲,要博览群码。各种搜索,找了好些源码,但只钟意一款(文后附上链接),拜读学习领会,下面开始我的再创作。
一、程序逻辑
总共9张不同内容的卡片,扩展成18张卡片(两两相同),排列成6行3列队形。用户点击卡片,实现翻牌效果,由卡片背面翻转至内容面(可爱小动物),翻转两张卡片之后,进行卡牌内容匹配,如果卡片内容一致,匹配成功,卡片消失;如果卡片内容不一致,匹配失败,卡片翻转至背面。
二、界面布局
这边没什么难点,无非是编写布局xml文件,MainActivity加载文件。我想说下布局的选择和GridView全屏自适应的设置。
1、布局的选择
我选择是FrameLayout,因为这种布局上的view都是一层一层叠加,这样方便在最上层加一个开始按钮。
2、GridView全屏自适应
在xml布局文件中设置GridViewd的android:layout_height为match_parent,无法达到效果。百度了一番,基本都是采用在适配器的getView方法中设置GridView中每个View的高度来实现GridView的屏幕自适应。代码如下:
先计算出每个View的高度

        Resources res = getResources();
        int statusBarHeight = 0;
        int resourceId = res.getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
   
            statusBarHeight = res.getDimensionPixelSize(resourceId);
        }
        int actionBarHeight = 0;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
   
            TypedValue tv = new TypedValue();
            getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true);
            actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
        }
        int contentWidth=0,content
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值