2025-05-17

 

最近看瞭一個手機遊戲的例子,我就用課餘時間把簡單的遊戲開發思想介紹一下,首先,遊戲一般都隻有一個activity類,其餘的都是集成的是view類的子類!然後我寫的遊戲算坐標的地方比較多!然後就是刷新界面的方法來更新遊戲界面的變化!我寫的這個例子有四個主菜單,開始菜單,音效設置菜單,遊戲幫助菜單,退出菜單。開始遊戲的界面可以進行復選,而且保證球的個數都不重復,用隨機數的思想,在ArrayList中去掉一個數,然後再在裡面出一個隨機數,然後再選出來。如此循環就可以達到目的。這個遊戲的界面我是用word畫的圖!先看下程序結果圖:

 

                           遊戲主菜單界面:                                                  點擊開始遊戲進入的界面:

 

 

                                             

 

                           遊戲音效界面,設置界面:                                   遊戲幫助文檔界面:

                                          

          在遊戲界面點擊復選文本時,

               可以改變球的值:                                                 點擊開獎後的界面:

                                                                        

 

                                 不同的中獎結果                                               選擇復選得另一種效果圖

                                       

 

 

二、下面我把我的源碼貼出來:

 1、MainActiivty類中的代碼:

view plainprint?

package com.an.daming; 

 

import android.app.Activity; 

import android.media.MediaPlayer; 

import android.os.Bundle; 

import android.os.Handler; 

import android.os.Message; 

import android.view.Window; 

import android.view.WindowManager; 

 

public class MainActivity extends Activity { 

    

 public static final int Welcome=0; 

 public static final int START=1; 

 public static final int SETTING=2; 

 public static final int HELP=3; 

 public static final int EXIT=4; 

  

 public static final int DOUBLERESULT = 5; 

  

 public MediaPlayer gameMusic; 

 public MediaPlayer buttonSound; 

  

 Handler mHandler=new Handler(){ 

  public void handleMessage(Message msg) { 

   switch(msg.what){ 

       case Welcome     : InitWelcomeView(); 

                          break; 

       case START       : InitStartView(); 

                                   break; 

       case HELP        : InitHelpView(); 

                          break; 

       case SETTING     : InitSetMusic(); 

                          break; 

       case EXIT        : InitGameExit(); 

                          break; 

       case DOUBLERESULT: InitGameResultView(); 

                          break; 

       default          : break; 

   } 

  } 

 }; 

  

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        requestWindowFeature(Window.FEATURE_NO_TITLE); 

  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,   

                       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

   

  gameMusic  = MediaPlayer.create(this, R.raw.gamesound); 

  gameMusic.setLooping(true); 

  buttonSound  = MediaPlayer.create(this, R.raw.go); 

   

  //初始化開始界面 

  this.InitWelcomeView(); 

    } 

     

    private void InitWelcomeView() 

    { 

     //makeup logo view 

     this.setContentView(new WelcomeView(this,this)); 

    } 

     

    private void InitStartView() 

    { 

     //makeup startGame View 

     this.setContentView(new StartGameView(this,this)); 

    } 

     

    private void InitSetMusic() 

    { 

     //set music View 

     this.setContentView(new SetMusicView(this,this)); 

    } 

     

    private void InitHelpView() 

    { 

     //makeup help  View 

     this.setContentView(new HelpGameView(this,this)); 

    } 

     

    private void InitGameExit() 

    { 

     //destory the actiivty 

     System.exit(0); 

    } 

     

    private void InitGameResultView() 

    { 

     //makeup gameResult View 

     this.setContentView(new DoubleBallResultView(this,this)); 

    } 

 

 

2、StartGameView 開始遊戲界面

view plainprint?

package com.an.daming; 

 

import java.util.ArrayList; 

import java.util.Random; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Paint; 

import android.graphics.Rect; 

import android.view.MotionEvent; 

import android.view.View; 

  

public class StartGameView extends View{ 

 

 private MainActivity activity; 

 private Bitmap image_startGame = null; 

 private Bitmap game_Ssimple = null; 

 private Bitmap game_Ddouble = null; 

  

 private boolean simpleS = true; 

 private boolean doubleS = false; 

  

 private static int rCount = 6; 

 private String redText = "6"; 

 private static int bCount = 1; 

 private String blueText = "1"; 

  

 String[] rbStr = {"",""}; 

  

 Paint paint; 

 Paint paint1; 

  

 int redStr[] = { 1, 12, 33, 24, 15,6,17,28,19,10,2,7,14,3,25,11,27,8,29,20 

   ,4,22,13,31,5,16,23,18,26,30,21,9,32}; 

 int blueStr[] = {3,15,2,7,11,4,16,1,13,6,12,9,8,10,5,14}; 

  

 public StartGameView(Context context,MainActivity activity) { 

  super(context); 

 

  this.activity = activity; 

  InitStartGameBitmap(); 

 } 

 

 private void InitStartGameBitmap() 

 { 

  image_startGame = BitmapFactory.decodeResource(this.getResources(), R.drawable.playgame);  

  game_Ssimple = BitmapFactory.decodeResource(this.getResources(), R.drawable.game_point); 

  game_Ddouble = BitmapFactory.decodeResource(this.getResources(), R.drawable.game_point); 

 } 

  

 @Override 

 public void onDraw(Canvas canvas) 

 { 

  paint = new Paint(); 

  paint1 = new Paint(); 

  paint.setTextSize(22.0f); 

  canvas.drawBitmap(image_startGame,0,0,null); 

   

  if(simpleS){ 

   canvas.drawBitmap(game_Ssimple,18,34,null);    

  } 

  if(doubleS){ 

   canvas.drawBitmap(game_Ddouble,18,91,null);   

   canvas.drawText(redText, 135, 104, paint); 

   canvas.drawText(blueText, 226, 104, paint); 

  }   

 } 

  

 @Override 

 public boolean onTouchEvent(MotionEvent event)  

 { 

  int x=(int)event.getX(); 

  int y=(int)event.getY(); 

   

  if(event.getAction()!=MotionEvent.ACTION_DOWN) 

   return super.onTouchEvent(event); 

   

  Rect simpleSelected,doubleSelected,redBig,redSmall, 

       blueBig,blueSmall,forResult; 

  simpleSelected = new Rect(55,25,103,62); 

  doubleSelected = new Rect(55,80,108,117); 

  redBig = new Rect(182,74,215,96); 

  redSmall = new Rect(180,97,210,115); 

  blueBig = new Rect(271,74,304,96); 

  blueSmall = new Rect(271,101,300,116); 

  forResult = new Rect(121,401,187,451); 

   

  if(simpleSelected.contains(x,y)) 

  { 

   simpleS = true; 

   doubleS = false; 

   activity.buttonSound.start();  

   invalidate(); 

  } 

  if(doubleSelected.contains(x,y)) 

  { 

   simpleS = false; 

   doubleS = true; 

   activity.buttonSound.start();  

   invalidate(); 

  } 

  if(redBig.contains(x,y)) 

  { 

   if(rCount<20){ 

    rCount ++ ; 

    activity.buttonSound.start(); 

    redText = String.valueOf(rCount); 

    invalidate();    

   } 

  } 

  if(redSmall.contains(x,y)) 

  { 

   if(rCount>6){ 

    rCount — ; 

    activity.buttonSound.start(); 

    redText = String.valueOf(rCount); 

    invalidate();    

   } 

  } 

  if(blueBig.contains(x,y)) 

  { 

   if(bCount<16){ 

    bCount ++ ; 

    activity.buttonSound.start(); 

    blueText = String.valueOf(bCount); 

    invalidate();    

   } 

  } 

  if(blueSmall.contains(x,y)) 

  { 

   if(bCount>1){ 

    bCount — ; 

    activity.buttonSound.start(); 

    blueText = String.valueOf(bCount); 

    invalidate();    

   } 

  } 

   

  if(forResult.contains(x,y)) 

  { 

   activity.buttonSound.start(); 

   activity.mHandler.sendEmptyMessage(MainActivity.DOUBLERESULT); 

  } 

   

  return super.onTouchEvent(event); 

 } 

  

    //mathMethod 算法從數組中隨即讀取幾個數 

 public String getStringRadom(int[] in, int num) { 

 

  int[] tempInt = in; 

  StringBuffer tempSB = new StringBuffer(); 

  int temp = 0; 

  ArrayList<Integer> arrayList = new ArrayList<Integer>(); 

  Random rand = new Random(); 

  for (int i = 1; i < tempInt.length; i++) { 

   arrayList.add(new Integer(i)); 

  } 

 

  for (int i = 0; i < num; i++) { 

   temp = ((Integer) arrayList.remove(rand.nextInt(arrayList.size()))) 

     .intValue(); 

   tempSB.append(String.valueOf(temp) + ","); 

  } 

 

  return tempSB.toString(); 

 } 

  

 public void setRDCount(int redCount,int blueCount){ 

  rCount = redCount; 

  bCount = blueCount; 

 } 

  

 //得到紅球和藍球的結果 

 public String[] getRedAndBlueBallResult(){ 

  rbStr[0] = getStringRadom(redStr,rCount); 

  rbStr[1] = getStringRadom(blueStr,bCount); 

  invalidate(); 

  return rbStr; 

 } 

 

 

3、DoubleBallResultView的代碼:彩票顯示結果

view plainprint?

package com.an.daming; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Paint; 

import android.graphics.Rect; 

import android.view.MotionEvent; 

import android.view.View; 

 

public class DoubleBallResultView extends View{ 

 

 MainActivity activity; 

 private StartGameView mStartGameView = null; 

 private Bitmap bgResult_image = null; 

 private Bitmap selected_number = null; 

  

 private String redResult = ""; 

 private String blueResult = ""; 

  

 Paint paint; 

  

 public DoubleBallResultView(Context context,MainActivity activity) { 

  super(context); 

        this.activity = activity; 

        InitBitmap(); 

        String[] tempStr={"", ""}; 

        mStartGameView = new StartGameView(activity,activity); 

        tempStr = mStartGameView.getRedAndBlueBallResult(); 

        redResult = tempStr[0]; 

        blueResult = tempStr[1]; 

 } 

 

 @Override 

 public void onDraw(Canvas canvas) 

 { 

  paint = new Paint(); 

  canvas.drawBitmap(bgResult_image,0,0,null); 

  canvas.drawText(redResult, 60, 80, paint); 

  canvas.drawText(blueResult, 60, 116, paint); 

  String[] redArrayStr = getString(redResult); 

  String[] blueArrayStr = getString(blueResult); 

  for(int i=0;i<redArrayStr.length;i++){ 

   if(redArrayStr[i].equals("1")){ 

    canvas.drawBitmap(selected_number,36,150,null);    

   } 

   else if(redArrayStr[i].equals("2")){ 

    canvas.drawBitmap(selected_number,79,150,null);    

   } 

   else if(redArrayStr[i].equals("3")){ 

    canvas.drawBitmap(selected_number,124,150,null);    

   } 

   else if(redArrayStr[i].equals("4")){ 

    canvas.drawBitmap(selected_number,169,150,null);    

   } 

   else if(redArrayStr[i].equals("5")){ 

    canvas.drawBitmap(selected_number,211,150,null);    

   } 

   else if(redArrayStr[i].equals("6")){ 

    canvas.drawBitmap(selected_number,251,150,null);    

   } 

   else if(redArrayStr[i].equals("7")){ 

    canvas.drawBitmap(selected_number,36,180,null);    

   } 

   else if(redArrayStr[i].equals("8")){ 

    canvas.drawBitmap(selected_number,79,180,null);    

   } 

   else if(redArrayStr[i].equals("9")){ 

    canvas.drawBitmap(selected_number,124,180,null);    

   } 

   else if(redArrayStr[i].equals("10")){ 

    canvas.drawBitmap(selected_number,169,180,null);    

   } 

   else if(redArrayStr[i].equals("11")){ 

    canvas.drawBitmap(selected_number,211,180,null);    

   } 

   else if(redArrayStr[i].equals("12")){ 

    canvas.drawBitmap(selected_number,251,180,null);    

   } 

   else if(redArrayStr[i].equals("13")){ 

    canvas.drawBitmap(selected_number,36,213,null);    

   } 

   else if(redArrayStr[i].equals("14")){ 

    canvas.drawBitmap(selected_number,79,213,null);    

   } 

   else if(redArrayStr[i].equals("15")){ 

    canvas.drawBitmap(selected_number,124,213,null);    

   } 

   else if(redArrayStr[i].equals("16")){ 

    canvas.drawBitmap(selected_number,169,213,null);    

   } 

   else if(redArrayStr[i].equals("17")){ 

    canvas.drawBitmap(selected_number,211,213,null);    

   } 

   else if(redArrayStr[i].equals("18")){ 

    canvas.drawBitmap(selected_number,251,213,null);    

   } 

   else if(redArrayStr[i].equals("19")){ 

    canvas.drawBitmap(selected_number,36,243,null);    

   } 

   else if(redArrayStr[i].equals("20")){ 

    canvas.drawBitmap(selected_number,79,243,null);    

   } 

   else if(redArrayStr[i].equals("21")){ 

    canvas.drawBitmap(selected_number,124,243,null);    

   } 

   else if(redArrayStr[i].equals("22")){ 

    canvas.drawBitmap(selected_number,169,243,null);    

   } 

   else if(redArrayStr[i].equals("23")){ 

    canvas.drawBitmap(selected_number,211,243,null);    

   } 

   else if(redArrayStr[i].equals("24")){ 

    canvas.drawBitmap(selected_number,251,243,null);    

   } 

   else if(redArrayStr[i].equals("25")){ 

    canvas.drawBitmap(selected_number,36,275,null);    

   } 

   else if(redArrayStr[i].equals("26")){ 

    canvas.drawBitmap(selected_number,79,275,null);    

   } 

   else if(redArrayStr[i].equals("27")){ 

    canvas.drawBitmap(selected_number,124,275,null);    

   } 

   else if(redArrayStr[i].equals("28")){ 

    canvas.drawBitmap(selected_number,169,275,null);    

   } 

   else if(redArrayStr[i].equals("29")){ 

    canvas.drawBitmap(selected_number,211,275,null);    

   } 

   else if(redArrayStr[i].equals("30")){ 

    canvas.drawBitmap(selected_number,251,275,null);    

   } 

   else if(redArrayStr[i].equals("31")){ 

    canvas.drawBitmap(selected_number,36,306,null);    

   } 

   else if(redArrayStr[i].equals("32")){ 

    canvas.drawBitmap(selected_number,79,306,null);    

   } 

   else if(redArrayStr[i].equals("33")){ 

    canvas.drawBitmap(selected_number,124,306,null);    

   } 

  } 

  for(int i=0;i<blueArrayStr.length;i++){ 

   if(blueArrayStr[i].equals("1")){ 

    canvas.drawBitmap(selected_number,37,344,null);    

   } 

   else if(blueArrayStr[i].equals("2")){ 

    canvas.drawBitmap(selected_number,82,344,null);    

   } 

   else if(blueArrayStr[i].equals("3")){ 

    canvas.drawBitmap(selected_number,123,344,null);    

   } 

   else if(blueArrayStr[i].equals("4")){ 

    canvas.drawBitmap(selected_number,166,344,null);    

   } 

   else if(blueArrayStr[i].equals("5")){ 

    canvas.drawBitmap(selected_number,209,344,null);    

   } 

   else if(blueArrayStr[i].equals("6")){ 

    canvas.drawBitmap(selected_number,251,344,null);    

   } 

   else if(blueArrayStr[i].equals("7")){ 

    canvas.drawBitmap(selected_number,37,373,null);    

   } 

   else if(blueArrayStr[i].equals("8")){ 

    canvas.drawBitmap(selected_number,82,373,null);    

   } 

   else if(blueArrayStr[i].equals("9")){ 

    canvas.drawBitmap(selected_number,123,373,null);    

   } 

   else if(blueArrayStr[i].equals("10")){ 

    canvas.drawBitmap(selected_number,166,373,null);    

   } 

   else if(blueArrayStr[i].equals("11")){ 

    canvas.drawBitmap(selected_number,209,373,null);    

   } 

   else if(blueArrayStr[i].equals("12")){ 

    canvas.drawBitmap(selected_number,251,373,null);    

   } 

   else if(blueArrayStr[i].equals("13")){ 

    canvas.drawBitmap(selected_number,37,404,null);    

   } 

   else if(blueArrayStr[i].equals("14")){ 

    canvas.drawBitmap(selected_number,82,404,null);    

   } 

   else if(blueArrayStr[i].equals("15")){ 

    canvas.drawBitmap(selected_number,123,404,null);    

   } 

   else if(blueArrayStr[i].equals("16")){ 

    canvas.drawBitmap(selected_number,166,404,null);    

   } 

  }  

 } 

  

 private void InitBitmap() 

 { 

  bgResult_image = BitmapFactory.decodeResource(this.getResources(), R.drawable.dbresult); 

  selected_number = BitmapFactory.decodeResource(this.getResources(), R.drawable.selected_number); 

 } 

  

 public boolean onTouchEvent(MotionEvent event) { 

  int x = (int) event.getX(); 

  int y = (int) event.getY(); 

 

  if (event.getAction() != MotionEvent.ACTION_DOWN) 

   return super.onTouchEvent(event); 

   

  Rect rcReagainGame,rcResultReturn; 

   

  rcReagainGame = new Rect(156,450,202,466); 

  rcResultReturn = new Rect(221,450,265,466); 

   

  if(rcReagainGame.contains(x,y)) 

  { 

   mStartGameView.setRDCount(6, 1); 

   activity.mHandler.sendEmptyMessage(MainActivity.START); 

  } 

  if(rcResultReturn.contains(x,y)) 

  { 

   mStartGameView.setRDCount(6, 1); 

   activity.mHandler.sendEmptyMessage(MainActivity.Welcome); 

  } 

   

  return super.onTouchEvent(event);   

 } 

  

 public String[] getString(String str){ 

  String tempStr = str; 

  String[] arryStr = tempStr.split(","); 

  return arryStr; 

 } 

 

 

4、WelcomeView.java代碼

view plainprint?

package com.an.daming; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Rect; 

import android.view.MotionEvent; 

import android.view.SurfaceHolder; 

import android.view.SurfaceView; 

import android.view.View; 

 

public class WelcomeView extends View{ 

 

 private MainActivity activity; 

 private Bitmap image_welcome; 

 private Bitmap image_selected; 

 private TutorialThread thread; 

  

 private boolean startSelected = false; 

 private boolean setSelected = false; 

 private boolean optionSelected = false; 

 private boolean exitSelected = false; 

  

 public WelcomeView(Context context,MainActivity activity) { 

  super(context); 

  this.activity = activity; 

  InitBitmap(); 

 } 

  

 private void InitBitmap() 

 { 

  image_welcome = BitmapFactory.decodeResource(this.getResources(), R.drawable.logowelcome); 

  image_selected = BitmapFactory.decodeResource(this.getResources(), R.drawable.select); 

 } 

  

 @Override 

 public void onDraw(Canvas canvas) 

 { 

  canvas.drawBitmap(image_welcome,0,0,null);  

  if(startSelected){ 

   canvas.drawBitmap(image_selected,40,127,null); 

  } 

  if(setSelected){ 

   canvas.drawBitmap(image_selected,40,194,null); 

  } 

  if(optionSelected){ 

   canvas.drawBitmap(image_selected,40,263,null); 

  } 

  if(exitSelected){ 

   canvas.drawBitmap(image_selected,40,341,null); 

  } 

 } 

  

 public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { 

  // TODO Auto-generated method stub 

   

 } 

 public void surfaceCreated(SurfaceHolder arg0) { 

  this.thread.setFlag(true); 

  this.thread.start(); 

 } 

 public void surfaceDestroyed(SurfaceHolder arg0) { 

  boolean retry = true; 

        thread.setFlag(false); 

        while (retry) { 

            try { 

                thread.join(); 

                retry = false; 

            }  

            catch (InterruptedException e) { 

            } 

        } 

 } 

  

 @Override 

 public boolean onTouchEvent(MotionEvent event)  

 { 

  int x=(int)event.getX(); 

  int y=(int)event.getY(); 

   

  if(event.getAction()!=MotionEvent.ACTION_DOWN) 

   return super.onTouchEvent(event); 

   

  Rect rcStart,rcSetting,rcHelp,rcExit; 

  rcStart=new Rect(89,120,220,167); 

  rcSetting=new Rect(89,188,220,237); 

  rcHelp=new Rect(89,258,220,307); 

  rcExit=new Rect(89,331,220,381); 

 

  if(rcStart.contains(x,y)) 

  { 

   startSelected = true; 

   setSelected = false; 

   optionSelected = false; 

   exitSelected = false; 

   activity.buttonSound.start();  

   activity.mHandler.sendEmptyMessage(MainActivity.START); 

   invalidate(); 

  } 

  if(rcSetting.contains(x,y)) 

  { 

   startSelected = false; 

   setSelected = true; 

   optionSelected = false; 

   exitSelected = false; 

   activity.buttonSound.start(); 

   activity.mHandler.sendEmptyMessage(MainActivity.SETTING); 

   invalidate(); 

  } 

  if(rcHelp.contains(x,y)) 

  { 

   startSelected = false; 

   setSelected = false; 

   optionSelected = true; 

   exitSelected = false; 

   activity.buttonSound.start(); 

   activity.mHandler.sendEmptyMessage(MainActivity.HELP); 

   invalidate(); 

  }  

  if(rcExit.contains(x,y)) 

  { 

   startSelected = false; 

   setSelected = false; 

   optionSelected = false; 

   exitSelected = true; 

   activity.buttonSound.start(); 

   activity.mHandler.sendEmptyMessage(MainActivity.EXIT); 

   invalidate(); 

  } 

  return super.onTouchEvent(event); 

 } 

  

 ///////////////////////////////////////// 

 //draw picture 

 //////////////////////////////////////// 

  

 class TutorialThread extends Thread 

 { 

  private int span = 100;                //Sleeping time 

  private SurfaceHolder surfaceHolder; 

  private WelcomeView welcomeView; 

  private boolean flag = false; 

        public TutorialThread(SurfaceHolder surfaceHolder, WelcomeView welcomeView) 

        { 

            this.surfaceHolder = surfaceHolder; 

            this.welcomeView = welcomeView; 

        } 

        public void setFlag(boolean flag)  

        { 

         this.flag = flag; 

        } 

  @Override 

  public void run() 

  { 

   Canvas c; 

            while (this.flag) { 

                c = null; 

                try { 

                    c = this.surfaceHolder.lockCanvas(null); 

                    synchronized (this.surfaceHolder) { 

                     welcomeView.onDraw(c); 

                    } 

                } finally { 

                    if (c != null) { 

                        this.surfaceHolder.unlockCanvasAndPost(c); 

                    } 

                } 

                try{ 

                 Thread.sleep(span); 

                } 

                catch(Exception e){ 

                 e.printStackTrace(); 

                } 

            } 

  } 

 } 

 

 

5、SetMusicView類的代碼

view plainprint?

package com.an.daming; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Rect; 

import android.view.MotionEvent; 

import android.view.View; 

 

public class SetMusicView extends View{ 

 

 private MainActivity activity; 

 private Bitmap image_setMusic = null; 

 private boolean music=true; 

  

 public SetMusicView(Context context,MainActivity activity) { 

  super(context); 

   

  this.activity = activity; 

  initSetMusicBitmap(); 

 } 

 

 private void initSetMusicBitmap() 

 { 

  image_setMusic = BitmapFactory.decodeResource(this.getResources(), R.drawable.setmusic); 

 } 

  

 @Override 

 public void onDraw(Canvas canvas) 

 { 

  canvas.drawBitmap(image_setMusic,0,0,null);  

 } 

  

 @Override 

 public boolean onTouchEvent(MotionEvent event)  

 { 

  int x=(int)event.getX(); 

  int y=(int)event.getY(); 

   

  if(event.getAction()!=MotionEvent.ACTION_DOWN) 

   return super.onTouchEvent(event); 

   

  Rect rcSetMusic; 

   

  rcSetMusic = new Rect(44,170,259,276); 

   

  if(rcSetMusic.contains(x, y)) 

  { 

   activity.buttonSound.start(); 

   if(music) 

   { 

    if(activity.gameMusic.isPlaying()) 

     activity.gameMusic.pause(); 

    music=false; 

   } 

   else 

   { 

    if(!activity.gameMusic.isPlaying()) 

     activity.gameMusic.start(); 

    music=true; 

   } 

  } 

   

  return super.onTouchEvent(event); 

 } 

 

6、HekpView中的代碼:

view plainprint?

package com.an.daming; 

 

import android.content.Context; 

import android.graphics.Bitmap; 

import android.graphics.BitmapFactory; 

import android.graphics.Canvas; 

import android.graphics.Rect; 

import android.view.MotionEvent; 

import android.view.View; 

 

public class SetMusicView extends View{ 

 

 private MainActivity activity; 

 private Bitmap image_setMusic = null; 

 private boolean music=true; 

  

 public SetMusicView(Context context,MainActivity activity) { 

  super(context); 

   

  this.activity = activity; 

  initSetMusicBitmap(); 

 } 

 

 private void initSetMusicBitmap() 

 { 

  image_setMusic = BitmapFactory.decodeResource(this.getResources(), R.drawable.setmusic); 

 } 

  

 @Override 

 public void onDraw(Canvas canvas) 

 { 

  canvas.drawBitmap(image_setMusic,0,0,null);  

 } 

  

 @Override 

 public boolean onTouchEvent(MotionEvent event)  

 { 

  int x=(int)event.getX(); 

  int y=(int)event.getY(); 

   

  if(event.getAction()!=MotionEvent.ACTION_DOWN) 

   return super.onTouchEvent(event); 

   

  Rect rcSetMusic; 

   

  rcSetMusic = new Rect(44,170,259,276); 

   

  if(rcSetMusic.contains(x, y)) 

  { 

   activity.buttonSound.start(); 

   if(music) 

   { 

    if(activity.gameMusic.isPlaying()) 

     activity.gameMusic.pause(); 

    music=false; 

   } 

   else 

   { 

    if(!activity.gameMusic.isPlaying()) 

     activity.gameMusic.start(); 

    music=true; 

   } 

  } 

   

  return super.onTouchEvent(event); 

 } 

 

 

三、說明,經過一晚上的努力,終於寫完瞭,太興奮瞭!我的原創啊,轉載請標明出處:

 http://blog.csdn.net/wdaming1986/article/details/6683479

有問題和想要源碼的可以留郵箱啊!我看到瞭就發郵件!累瞭,洗洗睡覺瞭哦!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *