------------------------main.java---------------------------------
package com.example.flliper;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class MainActivity extends ActionBarActivity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = getSharedPreferences("config", MODE_PRIVATE);
//判断一下,是否做过设置向导,如果没有做过,就跳转到设置向导页面去设置,否则就留着当前的页面
boolean configed = sp.getBoolean("configed", false);
if(configed){
// 就在手机防盗页面
setContentView(R.layout.activity_main);
}else{
//还没有做过设置向导
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
//关闭当前页面
finish();
}
}
/**
* 重新进入手机防盗设置向导页面
* @param view
*/
public void reEnterSetupOnclick(View view){
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
//关闭当前页面
finish();
}
}
--------------------------------BaseSetupActivity.java---------是下面3个activity 的父类------------------
package com.example.flliper;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
public abstract class BaseSetupActivity extends Activity {
//1.定义一个手势识别器
private GestureDetector detector;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//2.实例化这个手势识别器
detector = new GestureDetector(this, new SimpleOnGestureListener(){
/**
* 当我们的手指在上面滑动的时候回调
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
//屏蔽在X滑动很慢的情形
if(Math.abs(velocityX)<200){
Toast.makeText(getApplicationContext(), "滑动得太慢了", 0).show();
return true;
}
//屏蔽斜滑这种情况
if(Math.abs((e2.getRawY() - e1.getRawY())) > 100){
Toast.makeText(getApplicationContext(), "不能这样滑", 0).show();
return true;
}
if((e2.getRawX() - e1.getRawX())> 200 ){
//显示上一个页面:从左往右滑动
System.out.println("显示上一个页面:从左往右滑动");
showPre();
return true;
}
if((e1.getRawX()-e2.getRawX()) > 200 ){
//显示下一个页面:从右往左滑动
System.out.println("显示下一个页面:从右往左滑动");
showNext();
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
public abstract void showNext();
public abstract void showPre();
/**
* 下一步的点击事件
* @param view
*/
public void next(View view){
showNext();
}
/**
* 上一步
* @param view
*/
public void pre(View view){
showPre();
}
//3.使用手势识别器
@Override
public boolean onTouchEvent(MotionEvent event) {
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
-------------------------------Setup1Activity.java-------------------------
package com.example.flliper;
import android.content.Intent;
import android.os.Bundle;
public class Setup1Activity extends BaseSetupActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup1);
}
@Override
public void showNext() {
Intent intent = new Intent(this,Setup2Activity.class);
startActivity(intent);
finish();
//要求在finish()或者startActivity(intent);后面执行;
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
}
}
--------------------------Setup2Activity.java----------------------
package com.example.flliper;
import android.content.Intent;
import android.os.Bundle;
public class Setup2Activity extends BaseSetupActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup2);
}
@Override
public void showNext() {
Intent intent = new Intent(this,Setup3Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
}
}
------------------------Setup3Activity.java------------------------
package com.example.flliper;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
public class Setup3Activity extends BaseSetupActivity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup3);
sp = getSharedPreferences("config", MODE_PRIVATE);
}
@Override
public void showNext() {
Editor editor = sp.edit();
editor.putBoolean("configed", true);
editor.commit();
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
Intent intent = new Intent(this,Setup2Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
}
}
。。。。。。。。main.xml。。。。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="mainmain"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="reEnterSetupOnclick"
android:text="进入滑动界面" />
</LinearLayout>
。。。。。。。。。。。。。。activity_setup1.xml。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="111111" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
</LinearLayout>
<Button
style="@style/button_next_style"
/>
</LinearLayout>
。。。。。。。。。。。。。。activity_setup2.xml。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2222" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
</LinearLayout>
<Button
style="@style/button_pre_style"
/>
<Button
style="@style/button_next_style"
/>
</LinearLayout>
。。。。。。。。。。。。。activity_setup3.xml。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="33333"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
</LinearLayout>
<Button style="@style/button_pre_style" />
<Button style="@style/button_next_style" />
</LinearLayout>
。。。。。。。。。。。。res/drawable_hdpi/button_select.xml。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/function_greenbutton_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/function_greenbutton_pressed" /> <!-- focused -->
<item android:drawable="@drawable/function_greenbutton_normal" /> <!-- default -->
</selector>
34、滑动界面 style、GestureDetector、overridePendingTransition()、anim
原文:http://blog.csdn.net/u010919133/article/details/44658313