Android开发教程:斗地主 [牌桌实…

本文提供了一个Android斗地主游戏的牌桌实现方法,通过剪切扑克牌图片以节约内存,并详细介绍了主Activity、牌桌页面的代码实现,包括牌桌背景、扑克牌的绘制和布局。同时,还涉及到玩家手牌的处理和排序逻辑。
摘要由CSDN通过智能技术生成

http://blog.csdn.net/hopezhangbo/article/details/7434284

发一个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. public class PukeActivity extends Activity  
  11.       
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState)  
  14.         super.onCreate(savedInstanceState);  
  15.         // 这个事隐藏标题栏,不解释   
  16.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  17.         // 隐藏状态栏,你懂的   
  18.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  19.                 WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  20.           
  21.   
  22.         // 使用代码锁定横屏   
  23.         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
  24.         // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);这个是竖屏   
  25.         setContentView(new GameView(this));  
  26.      
  27. }

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. public class GameView extends SurfaceView implements SurfaceHolder.Callback  
  16.     private FlushThread thread null;// 刷帧线程   
  17.     private Bitmap sourceBitmap null;// 扑克图片来源   
  18.     private Bitmap backgroundDesk null;// 牌桌背景   
  19.     private Bitmap backgroundPuke null;// 扑克背面   
  20.   
  21.     private final Person person;  
  22.     private int pukeWidth 0;// 扑克的宽   
  23.     private int pukeHeight 0;// 扑克的高   
  24.     private int deskWidth 0;// 牌桌的宽   
  25.     private int deskHeight 0;// 牌桌的高   
  26.     private int left 0;// 我自己首张牌左距离   
  27.   
  28.     public GameView(Context context)  
  29.         super(context);  
  30.         getHolder().addCallback(this);  
  31.         this.thread new FlushThread(getHolder(), this);// 实例化线程   
  32.         initBitmap();// 实例化图片   
  33.         this.person new Person();// 实例化Person类   
  34.         this.left deskWidth 2 (16 25 pukeWidth) 2;// 左距开始时赋值   
  35.      
  36.   
  37.     private void initBitmap() { // 初始化图片   
  38.         sourceBitmap BitmapFactory.decodeResource(getResources(),  
  39.                 R.drawable.smallcard);  
  40.         pukeWidth sourceBitmap.getWidth() 14;// 每张扑克的宽高   
  41.         pukeHeight sourceBitmap.getHeight
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值