Android开发教程:斗地主 [牌桌实现源码]

本文介绍了一个Android斗地主游戏的牌桌实现,通过剪切每张扑克牌来节省内存,并展示了主Activity和牌桌页面的代码实现。牌桌布局随屏幕旋转调整,扑克牌图像通过Bitmap进行处理。同时,提供了扑克牌类和玩家类的简单说明。

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

发一个Android斗地主游戏的牌桌实现。

为了节约内存资源,每张扑克牌都是剪切形成的,当然这也是当前编程的主流方法。

1、主Activity

  1. package com.bison;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.pm.ActivityInfo;  
  5. import android.os.Bundle;  
  6. import android.view.Window;  
  7. import android.view.WindowManager;  
  8.   
  9. /** 
  10.  * 求某公司包养 
  11.  *  
  12.  * @author Bison 
  13.  *  
  14.  */  
  15. public class PukeActivity extends Activity {  
  16.     /** Called when the activity is first created. */  
  17.     @Override  
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         // 这个事隐藏标题栏,不解释   
  21.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  22.         // 隐藏状态栏,你懂的   
  23.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  24.                 WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  25.         /* 
  26.          * 开始有考虑使屏幕上扑克的排列随屏幕的分辨率变动 结果貌似不好做,注释掉了 Display display = 
  27.          * getWindowManager().getDefaultDisplay(); int screenWidth = 
  28.          * display.getWidth(); int screenHeight = display.getHeight(); 
  29.          */  
  30.   
  31.         // 使用代码锁定横屏   
  32.         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
  33.         // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);这个是竖屏   
  34.         setContentView(new GameView(this));  
  35.     }  
  36. }

2、牌桌页面

  1. package com.bison;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.Bitmap;  
  5. import android.graphics.BitmapFactory;  
  6. import android.graphics.Canvas;  
  7. import android.graphics.Rect;  
  8. import android.view.MotionEvent;  
  9. import android.view.SurfaceHolder;  
  10. import android.view.SurfaceView;  
  11.   
  12. import com.bison.utils.Person;  
  13.   
  14. /** 
  15.  * 牌桌,会被老婆骂,最好不要上去,你懂的 
  16.  *  
  17.  * 扑克图片来源,和牌桌背景在文章的下面。 扑克背面图等我没上传,玩家自行百度 
  18.  *  
  19.  * @author Bison 
  20.  *  
  21.  */  
  22. public class GameView extends SurfaceView implements SurfaceHolder.Callback {  
  23.     private FlushThread thread = null;// 刷帧线程   
  24.     private Bitmap sourceBitmap = null;// 扑克图片来源   
  25.     private Bitmap backgroundDesk = null;// 牌桌背景   
  26.     private Bitmap backgroundPuke = null;// 扑克背面   
  27.   
  28.     private final Person person;  
  29.     private int pukeWidth = 0;// 扑克的宽   
  30.     private int pukeHeight = 0;// 扑克的高   
  31.     private int deskWidth = 0;// 牌桌的宽   
  32.     private int deskHeight = 0;// 牌桌的高   
  33.     private int left = 0;// 我自己首张牌左距离   
  34.   
  35.     public GameView(Context context) {  
  36.         super(context);  
  37.         getHolder().addCallback(this);  
  38.         this.thread = new FlushThread(getHolder(), this);// 实例化线程   
  39.         initBitmap();// 实例化图片   
  40.         this
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值