title: Android Home Screen effect
body: <p>I want to do something like andriod home screen effect. when i click the screen and move. the current view will move and next view also can show.</p>
  
  <p>Now the code only can show the current view. </p>
  
  <p>Thank you for your help</p>
  
  <p>The source as follow:</p>
  
  <pre><code>public class test extends Activity implements OnTouchListener{
  float downXValue;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      // Set main.XML as the layout for this Activity
      setContentView(R.layout.main);
  
      // Add these two lines
      LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_main);
      layMain.setOnTouchListener((OnTouchListener) this); 
  
      // Add a few countries to the spinner
      Spinner spinnerCountries = (Spinner) findViewById(R.id.spinner_country);
      ArrayAdapter countryArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,new String[] { "Canada", "USA" });
      spinnerCountries.setAdapter(countryArrayAdapter);
  
  }
  
  public boolean onTouch(View arg0, MotionEvent arg1) {
  
      // Get the action that was done on this touch event
      switch (arg1.getAction())
      {
          case MotionEvent.ACTION_DOWN:
          {
              // store the X value when the user's finger was pressed down
              downXValue = arg1.getX();
              break;
          }
  
          case MotionEvent.ACTION_UP:
          {
              // Get the X value when the user released his/her finger
              float currentX = arg1.getX();            
  
              // going backwards: pushing stuff to the right
              if (downXValue &lt; currentX)
              {
                  // Get a reference to the ViewFlipper
                   ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                   // Set the animation
                    vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
                    // Flip!
                    vf.showPrevious();
  
              }
  
              // going forwards: pushing stuff to the left
              if (downXValue &gt; currentX)
              {
                  // Get a reference to the ViewFlipper
                  ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                   // Set the animation
                   vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
                    // Flip!
                   vf.showNext();
              }
              break;
          }
          case MotionEvent.ACTION_MOVE:
            ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
              final View currentView = vf.getCurrentView();
               currentView.layout((int)(arg1.getX() - downXValue), 
                     currentView.getTop(), currentView.getRight(), 
                      currentView.getBottom());
               /*may be do something in thest*/
  
          break;
  
      }
  
      // if you return false, these actions will not be recorded
      return true;
  }
  
  }
  </code></pre>