创建一个新的项目空的activity
manifest.xml
<activity
android:name=".MainActivity"
android:exported="true"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity2"
android:exported="true"
android:screenOrientation="landscape" />
注册新的activity,横屏
mianactivity.java
package com.example.myapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.WindowManager;
import com.example.myapp.services.myUdpService;
public class MainActivity extends AppCompatActivity {
protected GestureDetector mGestureDetector;
private Intent mIntent; // 声明一个意图对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
initView();
initService();
}
private void initView(){
mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener(){
//当手指在屏幕上滑动的时候 调用的方法.
@Override
//e1代表的是手指刚开始滑动的事件,e2代表手指滑动完了的事件
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if(e1.getRawX() - e2.getRawX() > 200){
showNext();//向右滑动,显示下一个界面
return true;
}
if(e2.getRawX() - e1.getRawX() > 200){
showPre();//向左滑动,显示上一个界面
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
private void initService(){
mIntent = new Intent(this, myUdpService.class);
startService(mIntent); // 启动指定意图的服务
}
//2.让手势识别器生效,重写Activity的触摸事件,并且将Activity的触摸事件传入到手势识别器中
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
public void showNext() {
Intent intent = new Intent(this,MainActivity2.class);
startActivity(intent);
finish();
//调用此方法让动画效果生效
overridePendingTransition(R.anim.tran_next_in, R.anim.tran_next_out);
}
public void showPre() {
/*
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
*/
}
}
mainactivity2.java
package com.example.myapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.WindowManager;
public class MainActivity2 extends AppCompatActivity {
protected GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener(){
//当手指在屏幕上滑动的时候 调用的方法.
@Override
//e1代表的是手指刚开始滑动的事件,e2代表手指滑动完了的事件
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if(e1.getRawX() - e2.getRawX() > 200){
showNext();//向右滑动,显示下一个界面
return true;
}
if(e2.getRawX() - e1.getRawX() > 200){
showPre();//向左滑动,显示上一个界面
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
//2.让手势识别器生效,重写Activity的触摸事件,并且将Activity的触摸事件传入到手势识别器中
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
public void showNext() {
}
public void showPre() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
}
}
tran_next_in.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="300">
</translate>
tran_next_out.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="-100%p"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="300">
</translate>
tran_pre_in.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="300">
</translate>
tran_pre_out.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="100%p"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="300">
</translate>