一、设置向导界面开发
a) 手势识别的开发(手指滑动上一步、下一步的开发)
private GestureDetector gestureDetector;
protected SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
sp = getSharedPreferences("config", MODE_PRIVATE);
gestureDetector = new GestureDetector(this,
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
// if (Math.abs(velocityX) < 300) {
// Toast.makeText(
// getApplicationContext(),
// "手指速度处于龟速,速度:" + Math.abs(velocityX)
// + "dp/s", 0).show();
// return true;
// }
// 屏蔽过度倾斜的滑动
if ((Math.abs(e1.getRawY() - e2.getRawY())) > 200) {
Toast.makeText(
getApplicationContext(),
"请勿斜划,高位差:"
+ (Math.abs(e1.getRawY()
- e2.getRawY())), 0).show();
return true;
}
// 从左往右滑动
if ((e2.getRawX() - e1.getRawX() > 160)) {
showPrevious();
return true;
}
if ((e2.getRawX() - e1.getRawX() < -160)) {
// 从右往左滑动
showNext();
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
二、设置向导界面进行切换的时候用到了位移动画(TranslateAnimation)
a) 参数解析
i. duration :时长,即唯一动画播放一次的用时(毫秒计)
ii. fromXDelta:起始状态,X轴的起始相对位置,父窗口1倍的位置
iii. toXDelta:结束状态,X轴结束的相对位置,父窗口的0倍位置
<translate
android:duration="300"
android:fromXDelta="100%p"
android:toXDelta="0" />
三、界面进行切换时启用位移动画(语句位置很关键)
public void showNext() {
Intent intent = new Intent(getApplicationContext(),
SettingsWizard2Activiy.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.anim_in_screen, R.anim.anim_out_screen);
}