优化了摇杆的使用

This commit is contained in:
ZCShou 2020-09-15 20:50:37 +08:00
parent 3720cb7f0a
commit 3424a6dacb
5 changed files with 97 additions and 61 deletions

View File

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

Binary file not shown.

View File

@ -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":{}}]
[{"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":{}}]

View File

@ -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);
}

View File

@ -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);
}
}
}