首页 > 其他 > 详细

34、滑动界面 style、GestureDetector、overridePendingTransition()、anim

时间:2015-03-27 08:51:41      阅读:166      评论:0      收藏:0      [点我收藏+]

技术分享


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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!