2015-04-01 17 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