diff --git a/app/build.gradle b/app/build.gradle index 8646567..9b9136e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,7 @@ android { minSdkVersion 21 targetSdkVersion 29 versionCode 1 - versionName "1.0.1" + versionName "1.0.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/release/app-release.apk b/app/release/app-release.apk index 7b5761a..75be827 100644 Binary files a/app/release/app-release.apk and b/app/release/app-release.apk differ diff --git a/app/release/output.json b/app/release/output.json index eccdb7a..e9a27fe 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.1","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.2","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/java/com/zcshou/joystick/ButtonView.java b/app/src/main/java/com/zcshou/joystick/ButtonView.java index 9b099b9..ea5b0eb 100644 --- a/app/src/main/java/com/zcshou/joystick/ButtonView.java +++ b/app/src/main/java/com/zcshou/joystick/ButtonView.java @@ -68,6 +68,7 @@ public class ButtonView extends LinearLayout { } else { isCenter = false; btnCenter.setImageResource(R.drawable.ic_lock_open); + if (isNorth) { isNorth = false; btnNorth.setImageResource(R.drawable.ic_up); @@ -100,10 +101,9 @@ public class ButtonView extends LinearLayout { isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); } - } - - if (mListener != null) { - mListener.clickCenter(); + if (mListener != null) { + mListener.clickAngleInfo(false,0, 0); + } } } }); @@ -132,14 +132,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,90, 1); + } } else { isNorth = false; btnNorth.setImageResource(R.drawable.ic_up); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,90, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,90, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(90, 1); } } }); @@ -167,14 +173,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,270, 1); + } } else { isSouth = false; btnSouth.setImageResource(R.drawable.ic_down); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,270, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,270, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(270, 1); } } }); @@ -202,14 +214,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,180, 1); + } } else { isWest = false; btnWest.setImageResource(R.drawable.ic_left); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,180, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,180, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(180, 1); } } }); @@ -237,14 +255,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,0, 1); + } } else { isEast = false; btnEast.setImageResource(R.drawable.ic_right); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,0, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,0, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(0, 1); } } }); @@ -274,14 +298,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,45, 1); + } } else { isEastNorth = false; btnEastNorth.setImageResource(R.drawable.ic_right_up); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,45, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,45, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(45, 1); } } }); @@ -310,14 +340,20 @@ public class ButtonView extends LinearLayout { btnWestNorth.setImageResource(R.drawable.ic_left_up); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,315, 1); + } } else { isEastSouth = false; btnEastSouth.setImageResource(R.drawable.ic_right_down); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,315, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,315, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(315, 1); } } }); @@ -346,14 +382,20 @@ public class ButtonView extends LinearLayout { btnEastSouth.setImageResource(R.drawable.ic_right_down); isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); + if (mListener != null) { + mListener.clickAngleInfo(true,135, 1); + } } else { isWestNorth = false; btnWestNorth.setImageResource(R.drawable.ic_left_up); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,135, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,135, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(135, 1); } } }); @@ -382,14 +424,20 @@ public class ButtonView extends LinearLayout { btnEastSouth.setImageResource(R.drawable.ic_right_down); isWestNorth = false; btnWestNorth.setImageResource(R.drawable.ic_left_up); + if (mListener != null) { + mListener.clickAngleInfo(true,225, 1); + } } else { isWestSouth = false; btnWestSouth.setImageResource(R.drawable.ic_left_down); - btnCenter.performClick(); + if (mListener != null) { + mListener.clickAngleInfo(false,225, 0); + } + } + } else { + if (mListener != null) { + mListener.clickAngleInfo(false,225, 1); } - } - if (mListener != null) { - mListener.clickAngleInfo(225, 1); } } }); @@ -400,15 +448,10 @@ public class ButtonView extends LinearLayout { } public interface ButtonViewClickListener { - /** - * 中间按钮被点击了 - */ - void clickCenter(); - /** * 点击的角度信息 */ - void clickAngleInfo(double angle, double r); + void clickAngleInfo(Boolean auto, double angle, double r); } diff --git a/app/src/main/java/com/zcshou/joystick/JoyStick.java b/app/src/main/java/com/zcshou/joystick/JoyStick.java index 4e17869..2c4890b 100644 --- a/app/src/main/java/com/zcshou/joystick/JoyStick.java +++ b/app/src/main/java/com/zcshou/joystick/JoyStick.java @@ -42,7 +42,6 @@ public class JoyStick extends View { // 移动 private TimeCount time; - boolean isAuto; double mAngle; double mSpeed; SharedPreferences sharedPreferences; @@ -130,7 +129,6 @@ public class JoyStick extends View { @SuppressLint("InflateParams") private void initJoyStickView() { time = new TimeCount(1000, 1000); - isAuto = false; String sSpeed = sharedPreferences.getString("setting_walk", ""); if (sSpeed == null) { mSpeed = Double.parseDouble(getResources().getString(R.string.setting_walk_default)); @@ -234,23 +232,18 @@ public class JoyStick extends View { ButtonView btnView = mJoystickView.findViewById(R.id.joystick_view); btnView.setListener(new ButtonView.ButtonViewClickListener() { @Override - public void clickCenter() { - if (isAuto) { - isAuto = false; + public void clickAngleInfo(Boolean auto, double angle, double r) { + if (r <= 0) { time.cancel(); } else { - isAuto = true; - } - } - - @Override - public void clickAngleInfo(double angle, double r) { - mAngle = angle; - mSpeed = mSpeed * r; - if (isAuto) { - time.start(); - } else { - mListener.clickAngleInfo(mAngle, mSpeed); + mAngle = angle; + mSpeed = mSpeed * r; + if (auto) { + time.start(); + } else { + time.cancel(); + mListener.clickAngleInfo(mAngle, mSpeed); + } } }