Android Home屏幕效果

时间:2010-08-05 01:55:28

标签: android homescreen

我想做类似andriod主屏效果的事情。当我点击屏幕并移动。当前视图将移动,下一个视图也可以显示。

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

感谢您的帮助

来源如下:

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

}

1 个答案:

答案 0 :(得分:0)

您可以使用Viewpager tofeeq ahmad 说:

  

Viewpager是在视图之间切换的最佳方式。它提供了一种方式   从左到右,从右到左滑动视图。 Viewpager提供   强有力的方式来刷任何观点。

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

中查看摘录和完整源代码