簡體   English   中英

Android主屏幕效果

[英]Android Home Screen effect

我想做類似“ 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;
}

}

您可以使用Viewpager 托菲克·艾哈邁德(Tofeeq ahmad)說:

Viewpager是在視圖之間切換的最佳方法。 它提供了一種從左向右和從右向左滑動視圖的方法。 Viewpager提供了一種強大的方式來滑動任何視圖。

您必須先擴展PagerAdapter ,然后使用Viewpager 。您可以在Android,Java和其他移動技術的Guidance中查看代碼段和完整的源代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM