2010-08-05 84 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.

片斷和完整的源代碼