</pre>实现手指滑动切换activity,带动画,view会随手指的位置切换,有动画。</p><p><span style="white-space:pre"> </span><pre name="code" class="java">public class SecondActivity extends BaseActivity implements ScrollXListener {
private int height = 0, width = 0;
private Window window;
private WindowManager manager;
View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
view = LayoutInflater.from(this).inflate(R.layout.second_activity_layout, null);
setContentView(view);
首先这里不是使用的id把view塞进去,首先获得view,以供后面使用该view实现想要的动画
自定义的回调函数,用于手指在滑动的时候,获得触点的位置
setScrollXListener(this);
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
获得屏幕的高和宽
}
@Override
public void scrollX(float x,MotionEvent e1, MotionEvent e2) {
// TODO Auto-generated method stub
Log.d("test", "int ---- " + x);
Float f = new Float(x);
在回调函数中改变view的位置
view.setX((e2.getX()-e1.getX()));
view.setY(0);
}
@Override
public void flingX(MotionEvent e1, MotionEvent e2) {
// TODO Auto-generated method stub
if(e2.getX()>width/2){
finish();
// overridePendingTransition(R.anim.anim_stand_alpha, R.anim.anim_right_out);
}else if(e2.getX()<width/2){
view.setX(0);
view.setY(0);
}
}
在手势的实践中,onScroll和onFling的两个<span style="font-family: Arial, Helvetica, sans-serif;">MotionEvent e1, MotionEvent e2是不同的,一个是起始点和实时的点的位置,另一个是起始点和手指离开的时候的位置。</span>
}
这里是核心功能的实现,美化的话自己实现
需要源代码的话:damengzai@sohu.com