title: android moving View containing RelativeLayout
body: <p><br>I want to create a simple scrabble-like board game. I've already created an XML file with RelativeLayout containing all fields of my board. Now what I want to accomplish is to have this board movable - so that user can zoom it in, zoom out and move over the screen. To make this happen I used tips from <a href="https://stackoverflow.com/questions/9398057/android-move-a-view-on-touch-move-action-move">HERE</a>. I replaced TextView with my own simple BoardView:</p>
  
  <pre><code>public class BoardView extends View {
  
          public BoardView(Context context) {
              super(context);
              setContentView(R.layout.board);
          }
  
      }
  </code></pre>
  
  <p>Unfortunately it doesn't work... My Board doesn't move.
  Please help me with it. 
  Maybe you have completely different approach to this kind of game? I'd love to hear about it.</p>
  
  <p>My BoardActivity code:</p>
  
  <pre><code>public class BoardActivity extends Activity implements OnTouchListener {
  
  private int deltaX_;
  private int deltaY_;
  
  private ViewGroup root_;
  private BoardView view_;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_board);
  
      root_ = (ViewGroup) findViewById(R.id.rootBoard);
  
      view_ = new BoardView(this);
  
      RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(540, 540);
      layoutParams.leftMargin = 50;
      layoutParams.topMargin = 50;
      layoutParams.bottomMargin = -2500;
      layoutParams.rightMargin = -2500;
      view_.setLayoutParams(layoutParams);
  
      view_.setOnTouchListener(this);
      root_.addView(view_);
  }
  
  public boolean onTouch(View v, MotionEvent event) {
  
          final int X = (int) event.getRawX();
          final int Y = (int) event.getRawY();
          switch (event.getAction() &amp; MotionEvent.ACTION_MASK) {
          case MotionEvent.ACTION_DOWN:
              RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
              deltaX_ = X - lParams.leftMargin;
              deltaY_ = Y - lParams.topMargin;
              break;
          case MotionEvent.ACTION_UP:
              break;
          case MotionEvent.ACTION_POINTER_DOWN:
              break;
          case MotionEvent.ACTION_POINTER_UP:
              break;
          case MotionEvent.ACTION_MOVE:
              RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
              layoutParams.leftMargin = X - deltaX_;
              layoutParams.topMargin = Y - deltaY_;
              layoutParams.rightMargin = -2500;
              layoutParams.bottomMargin = -2500;
              view_.setLayoutParams(layoutParams);
              break;
          }
          return true;
      }
  }
  </code></pre>
  
  <p>My board.xml layout is similiar to <a href="http://staticallytyped.wordpress.com/2011/01/26/android-avoiding-custom-views-with-resources/" rel="nofollow noreferrer">THIS</a>:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" &gt;
    &lt;ImageView
      android:background="@drawable/special_square"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/square_a1" /&gt;
    &lt;ImageView
      android:layout_toRightOf="@id/square_a1"
      android:background="@drawable/normal"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/square_a2" /&gt;
     ...and so on...
  </code></pre>