速断进度条动画时长,避免数据与进度条不一致问题,小于1的度数按照0°显示

This commit is contained in:
liujing
2022-06-08 11:53:28 +08:00
parent ac05752a3c
commit 04cd86aaf1

View File

@@ -78,11 +78,11 @@ public class SteeringWheelView extends ConstraintLayout {
steeringCircularV = findViewById(R.id.steering_circular);
steeringCircularV.setBackWidth(8);
steeringCircularV.setBackColor(R.color.hmi_light_back_bg);
steeringCircularV.setProgress((int) (270 * 100) / 360, 2000);
steeringCircularV.setProgress((int) (270 * 100) / 360, 20);
steeringCircularV.setProgColor(R.color.hmi_light_blue, R.color.hmi_dark_blue);
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
steeringCircularVAlpha = findViewById(R.id.steering_circular_alpha);
steeringCircularVAlpha.setProgress((int) (270 * 100) / 360, 2000);
steeringCircularVAlpha.setProgress((int) (270 * 100) / 360, 20);
steeringCircularV.setProgColor(R.color.hmi_dark_blue, R.color.hmi_light_blue);
steeringCircularVAlpha.setBackWidth(8);
steeringCircularVAlpha.setBackColor(R.color.hmi_clear_00);
@@ -177,27 +177,31 @@ public class SteeringWheelView extends ConstraintLayout {
*/
@Override
public void onAutopilotSteeringData(float steering) {
if (steering < 1) {
steering = 0;
}
float steeringValue = steering;
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "steering====" + String.valueOf(steering));
if (steeringTVL != null && steering > 0) {
Log.d(TAG, "steering====" + String.valueOf(steeringValue));
if (steeringTVL != null && steeringValue > 0) {
steeringTVR.setVisibility(View.INVISIBLE);
steeringTVL.setVisibility(View.VISIBLE);
steeringTVL.setText(String.valueOf((int) steering) + "°");
} else if (steeringTVR != null && steering <= 0) {
steeringTVL.setText(String.valueOf((int) steeringValue) + "°");
} else if (steeringTVR != null && steeringValue <= 0) {
steeringTVL.setVisibility(View.INVISIBLE);
steeringTVR.setVisibility(View.VISIBLE);
steeringTVR.setText(String.valueOf((int) -steering) + "°");
steeringTVR.setText(String.valueOf((int) -steeringValue) + "°");
} else {
Log.d(TAG, "onAutopilotSteeringData error");
}
animationWithSteeringData(-steering);
animationWithSteeringData(-steeringValue);
if (steeringCircularV != null) {
steeringCircularV.setProgress((int) (-steering * 100) / 360, 1000);
steeringCircularV.setProgress((int) (-steeringValue * 100) / 360, 20);
}
if (steeringCircularVAlpha != null) {
steeringCircularVAlpha.setProgress((int) (-steering * 100) / 360, 1000);
steeringCircularVAlpha.setProgress((int) (-steeringValue * 100) / 360, 20);
}
}
});
@@ -245,7 +249,7 @@ public class SteeringWheelView extends ConstraintLayout {
rotateAnimation = new RotateAnimation(fromDegrees, steering,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setDuration(1000);//旋转时长
rotateAnimation.setDuration(20);//旋转时长
rotateAnimation.setFillAfter(true);//旋转后保持原状
autopilotIV.clearAnimation();
autopilotIV.startAnimation(rotateAnimation);