android 滑动效果

Activity:
 

public class HarbourActivity extends Activity implements OnGestureListener {

ViewFlipper flipper;

GestureDetector detector;

EditText editText;

Button button;

 

@SuppressWarnings("deprecation")

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

setRequestedOrientation(Window.FEATURE_NO_TITLE);

flipper = (ViewFlipper) findViewById(R.id.viewFlipper1);

detector = new GestureDetector(this);

 

flipper.addView(addTextView(R.layout.one));

flipper.addView(addTextView(R.layout.two));

flipper.addView(addTextView(R.layout.three));

flipper.addView(addTextView(R.layout.four));

flipper.addView(addTextView(R.layout.five));

 

}

 

private View addTextView(int id) {

LinearLayout linearLayout = new LinearLayout(this);

linearLayout.inflate(this, id, linearLayout);

editText = (EditText) linearLayout.findViewById(R.id.editText1);

if (id == R.layout.one) {

final One one = new One(HarbourActivity.this, linearLayout);

}

Log.d("Tag", "addview");

 

return linearLayout;

}

 

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

Log.d("Tag", "onTouchEvent");

return this.detector.onTouchEvent(event);

}

 

@Override

public boolean onDown(MotionEvent e) {

// TODO Auto-generated method stub

Log.d("Tag", "onDown");

return false;

}

 

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

Log.d("Tag", "onFling");

if (e1.getX() - e2.getX() > 120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_out));

this.flipper.showNext();

return true;

else if (e1.getX() - e2.getX() < -120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_out));

this.flipper.showPrevious();

return true;

}

return false;

}

 

@Override

public void onLongPress(MotionEvent e) {

// TODO Auto-generated method stub

Log.d("Tag", "onLongPress");

}

 

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

float distanceY) {

// TODO Auto-generated method stub

Log.d("Tag", "onScroll");

return false;

}

 

@Override

public void onShowPress(MotionEvent e) {

// TODO Auto-generated method stub

Log.d("Tag", "onShowPress");

}

 

@Override

public boolean onSingleTapUp(MotionEvent e) {

// TODO Auto-generated method stub

Log.d("Tag", "onSingleTapUp");

return false;

}

 

}

 

 

 

 

public class One {

  Button  button;

  Activity mactivity;

  public One(final Activity activity,LinearLayout linearLayout){

  this.mactivity=activity;

 

  button=(Button)linearLayout.findViewById(R.id.button1);

  button.setOnClickListener(mButton);

  }

private OnClickListener mButton=new OnClickListener() {

 

@Override

public void onClick(View v) {

mactivity.setTitle("hello android !");

 

}

};

 

}

 

anim   xml:

 push_left_in:

  <?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate android:fromXDelta="100%p" android:toXDelta="0"

        android:duration="500" />

    <alpha android:fromAlpha="0.1" android:toAlpha="1.0"

        android:duration="500" />

</set>

push_left_out:

 

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate android:fromXDelta="0" android:toXDelta="-100%p"

        android:duration="500" />

    <alpha android:fromAlpha="1.0" android:toAlpha="0.1"

        android:duration="500" />

</set>  

push_right_in:

 

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate android:fromXDelta="-100%p" android:toXDelta="0"

        android:duration="500" />

    <alpha android:fromAlpha="0.1" android:toAlpha="1.0"

        android:duration="500" />

</set>

push_right_out:

 

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate android:fromXDelta="0" android:toXDelta="100%p"

        android:duration="500" />

    <alpha android:fromAlpha="1.0" android:toAlpha="0.1"

        android:duration="500" />

</set>  

 

框架就这些 ,  自由发挥

 
posted @ 2012-05-24 09:26  sinde12  阅读(194)  评论(0编辑  收藏  举报