2010-08-05 90 views
2

我想要做类似于andriod主屏幕效果的东西。当我点击屏幕并移动。当前视图会移动并且下一个视图也会显示。Android主屏幕效果

现在代码只能显示当前视图。

谢谢您的帮助

来源如下:

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 < 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 > 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; 
} 

} 

回答

0

您可以使用Viewpagertofeeq艾哈迈德说:

Viewpager是中视图切换的最佳途径。它提供了一种方式 从左到右和从右到左滑动视图。 Viewpager提供 强大的方式来刷任何意见。

必须扩展PagerAdapter然后用Viewpager。你可以看到在Guidance on Android, Java and Other mobile Technology.

片断和完整的源代码