2011-12-27 8 views
0

それはonTouchEventで次のように私が代わりにlines.Iのビットマップを描画したいチックタックつま先のゲームはコードの平和を書かれていることをAPI samples.fromからであるように私は、チックタックつま先のゲームを実装している:どのように私はアンドロイドでチックタックのつま先のゲームで線を描くのではなく、ビットマップイメージを描くことができますか?

@Override 
    public boolean onTouchEvent(MotionEvent event) { 

    if (event.getAction() == MotionEvent.ACTION_DOWN) 
    { 
    RectF rct=_logic.getPositionToFill(event.getX(), event.getY()); 

    if(rct!=null) 
    { 
    if(_drawX) 
    { 

     _bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.smile); 

     _canvas.drawBitmap(_bitmap, 0.0f, 0.0f, _paint); 

     /* _canvas.drawLine(rct.left, rct.top, 
       rct.right, rct.bottom, _paint); 


     _canvas.drawLine(rct.right, rct.top, 
       rct.left, rct.bottom, _paint);*/ 

    } 
    else 
    { 

      _bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.sad); 

     _canvas.drawBitmap(_bitmap, 0.0f, 0.0f, _paint); 

    //   _canvas.drawOval(rct, _paint); 

    } 
    _drawX=!_drawX; 

    invalidate(); 

    } 
    } 
    return true; 
    } 

drawLineではなくifブロックにコードを挿入しました。

+0

エラーを貼り付けることはできますか? – MikeIsrael

+0

エラーはありませんが、セルをクリックすると、セル全体が消えて画像が表示されます。 –

答えて

1

なぜ私はonTouchEventメソッドで線を描いているのかわかりません。オンonTouchEventメソッドでは、タッチの座標を取得し、画像をonDrawメソッドに描画するだけでよい。

bitampCross = BitmapFactory.decodeResource(getResources(),R.drawable.cross); 
     protected void onDraw(Canvas canvas) { 
    Paint background = new Paint(); 
    background.setColor(Color.WHITE); 
    canvas.drawRect(0, 0, getWidth(), getHeight(), background); 
    canvas.drawBitmap(backgroundGrid, 10, 0, null); 

       if (pos == 1) { 
         canvas.drawBitmap(bitampCross, bitampCross.getWidth() + 20, 
          bitampCross.getHeight() + 15, null); 
          } 
       if (pos == 2) { 
         canvas.drawBitmap(bitmapCircle, bitmapCircle.getWidth() + 20, 
             bitmapCircle.getHeight() + 15, null); 
       } 
        }//end of onDraw 
---------- 

    public boolean onTouchEvent(MotionEvent event) { 
    int action = event.getAction();   
    if (action == MotionEvent.ACTION_DOWN) { 
     return true;} 
     }else if(action == MotionEvent.ACTION_UP){ 
     //Do your checks if want to draw the image. 
     //For example your board can not take the whole screen 
     //return true or false in this block 
    //For example: 
     int x = (int) event.getX(); 
     int y = (int) event.getY(); 

    if(x<200 && y<200) 
     return true; 
    else 
    return false; 
} 
invalidate(); 
return false; 
}//end of onTouchEvente` 
関連する問題