2015-04-01 16 views
1

我是新到Android編程 在我的項目佈局,我需要創建選擇並放置不同形狀的使用OnTouch事件

  1. 調色板這是在網格佈局(我把一些按鈕和設置背景顏色)。
  2. 形狀(三角形,正方形和圓形其是按鈕以及)是線性佈局
  3. 接着這兩個是相對佈局,用戶可以繪製形狀的形狀中的一個

當用戶觸摸然後觸摸相對佈局(其位於形狀的旁邊),應該繪製該特定形狀以及顏色。例如,如果用戶觸摸圓形,然後觸摸屏幕,則應在用戶觸摸的位置繪製圓。

我設法在兩個不同的類中創建兩個觸摸事件,即一個用於選擇形狀,另一個用於放置佈局中的形狀。我不知道如何將這兩個類組合在一起。

任何人都可以請給我一個想法,我應該如何處理這個項目。 我應該在哪裏創建形狀(我應該爲每個形狀創建一個單獨的類/在onDraw()中)?如果我在onDraw()中創建形狀,我怎樣才能撥打onTouch()

任何幫助將是偉大的。提前致謝。

我希望我解釋得很好,對不起我英文不好,這是我第一次在這個論壇發帖。

回答

0

一般要在觸摸事件中在畫布上繪製形狀,我們使用下面的代碼,可能會對您有所幫助。

@Override 
     protected void onDraw (Canvas canvas) { 
      super.onDraw(canvas); 

      canvas.save(); 
      canvas.drawBitmap(mBitmap, 0, 0, null); 
      canvas.translate(xPos, yPos); 
      editIcon.draw(canvas); 
      canvas.restore(); 

     //  invalidate(); 
     } 
     @Override 
     public boolean onTouchEvent (MotionEvent event) { 

      switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN : 
        xPos = event.getX(); 
        yPos = event.getY(); 
        invalidate(); // add it here 
        break; 
      } 

      return true; 

     } 

檢查這個例子中,也

http://android-er.blogspot.in/2010/05/android-surfaceview.html

+0

您好感謝您的答覆。我們應該在View類中實現onDraw()。如何在onTouch()中使用onDraw()? – 2015-04-05 01:10:41

+0

@nirishachilukuri,你在代碼中看到有一個方法invalidate()內onTouch塊將調用你的onDraw()方法。總之無效意味着重繪。 – 2015-04-06 05:34:10