2012-07-04 203 views
0

開始學習畫布並且到目前爲止有兩個類(主要用於調用視圖和視圖) View類onDraw創建一個目標(即每個目標的數目顏色不同)繪製用戶在畫布上觸摸過的圓圈

我有一個ontouch listenerer設置爲記錄x和y的用戶點擊其中

我的麻煩則繪製新的圓圈/點出了用戶觸摸更新,類

主類

public class StartScreen extends Activity { 

    DrawView drawView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     drawView = new DrawView(this); 
     drawView.setBackgroundColor(Color.WHITE); 
     setContentView(drawView); 
} 

繪圖類

public class DrawView extends View implements View.OnTouchListener { 

    private Paint paint[]; 

    private Context context; 
    private Canvas canvas; 

    //definging some variables 

    public DrawView(Context pContext) { 
     super(pContext); 
     this.context = pContext; 

     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     Display display = wm.getDefaultDisplay(); 

     paint = new Paint[5]; 
     setupColours(); 

    // setting varibale like raduis etc 



    } 

    private void setupColours() { 

     // Creating Arrray of Paint Colours 

    } 

    @Override 
    public void onDraw(Canvas pCanvas) { 

     canvas = pCanvas; 

     newRadius = radius; 

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


      if (i == 3) { 
       canvas.drawCircle(centreWidth, centreHeight, newRadius, paint[0]); 
      } else { 
       canvas.drawCircle(centreWidth, centreHeight, newRadius, paint[1]); 
      } 


      canvas.drawCircle(centreWidth, centreHeight, newRadius - targetBoundary, paint[i/2]); 

      newRadius = newRadius - ringOffset; 

     } 

     this.setOnTouchListener(this); 

    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Log.d("TAG2", "x: " + event.getX() + " y: " + event.getY()); 
     drawHit(event.getX(), event.getY()); 
     return true; 
    } 

    public void drawHit(float hitX, float hitY) { 
     Log.d("HIT", "Hit being drawn"); 

     Paint paint2 = new Paint(); 
     paint2.setColor(Color.BLACK); 

     canvas.drawCircle(hitX, hitY, 100, paint2); 

    } 

的方法被稱爲但圓未被繪製。我究竟做錯了什麼。謝謝

+0

已更新類 –

+0

[Draw Circle on touch](http://stackoverflow.com/questions/11796357/draw-circle-on-touch) – bummi

回答

2

您提供的問題信息很少。一點闡述不會有什麼傷害。目標(圈子)是否按照您希望的那樣創建?如果是,那麼暫停FrameLayout並使用'addView'方法將你的球覆蓋到主視圖上。

稍微老了,但儘管如此,這可能是對你有用的教程: http://www.kellbot.com/2009/06/android-hello-circle/

好運

+0

已更新類 –

+0

在我看來,您正在嘗試在畫布上呈現同心圓。您是否遇到渲染單個圓的問題,或者將問題擴展到多個圓時出現問題? –

+0

圓圈工作正常,當我嘗試添加用戶觸摸的小圓圈不起作用 –