2

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

}
4

1 に答える 1

0

使用できますViewpagerトフィーク・アフマド さんのコメント

Viewpager は、ビューを切り替える最良の方法です。ビューを左から右、右から左にスワイプする方法を提供します。Viewpager は、任意のビューをスワイプするための強力な方法を提供します。

拡張PagerAdapterしてから使用する必要がありますViewpager。スニペットと完全なソース コードは、Android、Java、およびその他のモバイル テクノロジに関するガイダンスで確認できます。

于 2012-10-15T13:34:52.940 に答える