34、滑动界面 style、GestureDetector、overridePendingTransition()、anim、按钮图片变更(button_select)

来源:互联网 发布:制作生日快乐的软件 编辑:程序博客网 时间:2024/06/04 19:22



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

。。。。。。。。。。。。。。。。。往styles.xml里面加如下代码


<!-- 自定义样式 -->
    
    <style name="text_title_style">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">50dip</item>
        <item name="android:background">#8866ff00</item>
        <item name="android:gravity">center</item>
        <item name="android:textSize">22sp</item>
    </style>
   <style name="text_content_style">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">#000000</item>
        <item name="android:layout_marginLeft">5dip</item>
        <item name="android:layout_marginTop">5dip</item>
        <item name="android:gravity">center_vertical</item>
    </style>
    
  <!-- 下一步按钮的样式 -->
    <style name="button_next_style">
        <item name="android:onClick">next</item>
        <item name="android:background">@drawable/button_select</item>
        <item name="android:layout_alignParentRight">true</item>
        <item name="android:layout_alignParentBottom">true</item>
        <item name="android:drawableRight">@drawable/next</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:text">下一步</item>
    </style>
    <!-- 上一步按钮的样式 -->
    <style name="button_pre_style">
         <item name="android:onClick">pre</item>
        <item name="android:background">@drawable/button_select</item>
        <item name="android:layout_alignParentLeft">true</item>
        <item name="android:layout_alignParentBottom">true</item>
        <item name="android:drawableLeft">@drawable/previous</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:text">上一步</item>
    </style>







0 0
原创粉丝点击