package rakuseven.G1;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class RandomRun extends SurfaceView implements Callback , OnClickListener {
 Context mCtx;
 class ImgThread extends Thread{
  private Bitmap mImgBack, mImgButton;
  private int cnt = 0;
  private SurfaceHolder mSurfaceHolder;
  int xpos = 10;
  int ypos = 150;
  int BGmove = 0;
  int BTmove = 0;
  int CENTER = 4;
  Horses horses;
  public ImgThread(SurfaceHolder surfaceHolder, Context context){
   mSurfaceHolder = surfaceHolder;
   Resources res = context.getResources();
   mImgBack = BitmapFactory.decodeResource(res, R.drawable.bglong);
   //mImgButton = BitmapFactory.decodeResource(res, R.drawable.button_on_00);
   horses = new Horses(context);
   
   ImageButton Imagebutton0 = (ImageButton) findViewById(R.id.randomRun);
   Imagebutton0.setOnClickListener((OnClickListener) this);
  }
  public void run(){
   for(int i = 0 ; i < 5; i++)
    horses.Horse[i].start();
   
   while(true){
    boolean changed = false;
    
    for(int i = 0 ; i < 5; i++){
     if(horses.Horse[i].preStep != horses.Horse[i].LOCATION){
      changed = true;
     }
    }
    Canvas canvas = null;
    if (changed) {
     try {
      canvas = mSurfaceHolder.lockCanvas(null);
      synchronized (mSurfaceHolder) {
       canvas.drawBitmap(mImgBack, BGmove, 0, null);
       cnt++;
       for (int i = 0; i < 5; i++) {
        if(horses.Horse[CENTER].LOCATION < 200){
         xpos = horses.Horse[i].LOCATION;
        }else if(horses.Horse[CENTER].LOCATION >= 200 && horses.Horse[CENTER].LOCATION <= 1100){
         xpos = 200 - (horses.Horse[CENTER].LOCATION -horses.Horse[i].LOCATION);
         BGmove = 200 - horses.Horse[CENTER].LOCATION;
        }else if(horses.Horse[CENTER].LOCATION > 1100){
         xpos = horses.Horse[i].LOCATION - 900;
        }
        horses.Horse[i].mHImage[horses.Horse[i].FRAME % 10].setBounds(xpos, ypos + (i * 40),xpos + 100, ypos + (i * 40) + 100);
        horses.Horse[i].mHImage[horses.Horse[i].FRAME % 10].draw(canvas);
       }
       Paint paint = new Paint();
       paint.setAntiAlias(true);
       paint.setTextSize(18);
       if(horses.NUMBER > 5){
        canvas.drawBitmap(mImgButton, BTmove,0, null);
        canvas.drawText("- 순위 -", 300, 100, paint);
        for(int i = 1; i <= 5; i++){
         for(int j = 0; j < 5; j++){
          if(i == horses.Horse[j].RANK){
           canvas.drawText(i+"천둥 : "+horses.Horse[j].NAME, 170, 100+(i*22), paint);
           
          }
         }
        
        }
        break;
       }
       sleep(1);
      }
     } catch (InterruptedException e) {
      e.printStackTrace();
     } finally {
      if (canvas != null) {
       mSurfaceHolder.unlockCanvasAndPost(canvas);
      }
     }
    }
    changed = false;
   }
  }
 }
 private ImgThread thread;
 public RandomRun(Context context, AttributeSet attrs) {
  super(context, attrs);
  // TODO Auto-generated constructor stub
  mCtx = context;
  SurfaceHolder holder = getHolder();
  holder.addCallback(this);
  thread = new ImgThread(holder, context);
  setFocusable(true);
 }
 
 @Override
 public void surfaceChanged(SurfaceHolder holder, int format, int width,
   int height) {
  // TODO Auto-generated method stub
 }
 @Override
 public void surfaceCreated(SurfaceHolder holder) {
  // TODO Auto-generated method stub
  thread.start();
 }
 @Override
 public void surfaceDestroyed(SurfaceHolder holder) {
  // TODO Auto-generated method stub
  boolean retry = true;
  while(retry){
   try{
    thread.join();
    retry = false;
   }catch(InterruptedException e){
   }
  }
 }
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  // TODO Auto-generated method stub
  return super.onKeyDown(keyCode, event);
 }
 @Override
 public boolean onTouchEvent(MotionEvent event) {
  // TODO Auto-generated method stub
  //thread.setX((int)event.getX());
  event.getAction();
  return true;
 }
 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  
 }
}

main 인데 여기서 mImgButton 을 터치가 가능 하도록 만들고 싶습니다.
인터넷에서 발견한 승마게임인데 게임이 끝낫을때 재시작 버튼을 만들어서 다시 시작할수 있게 만들고 싶은데
게임이 끝나면 버튼이 뜨게까지는 구현하였는데 버튼에 터치를 넣으려니 bitmap이라서 인식이 안된다고 자꾸 뜨네요.
http://rakuseven.blog.me/30090510991 여기 있는 소스를 수정한겁니다.
버튼인식 어떻게 시킬수 있나요 ..ㅠ