diff --git a/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java b/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java index 508cec0c28..8212a768c8 100644 --- a/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java +++ b/modules/mogo-module-check/src/main/java/com/mogo/module/check/view/CheckActivity.java @@ -1,5 +1,7 @@ package com.mogo.module.check.view; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; @@ -7,8 +9,10 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.graphics.Rect; import android.os.Bundle; import android.util.Log; +import android.view.View; import android.view.animation.AnimationSet; import android.widget.Button; import android.widget.ImageView; @@ -24,6 +28,7 @@ import com.mogo.module.check.net.CheckApiServices; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.common.constants.HostConst; +import com.mogo.module.common.view.ImageViewClipBounds; import com.mogo.module.common.view.SpacesItemDecoration; import com.mogo.service.MogoServicePaths; import com.mogo.utils.CommonUtils; @@ -48,13 +53,18 @@ public class CheckActivity extends AppCompatActivity { private static String mSignalStrength; private ImageView mImageView; private String packageName = "com.mogo.launcher.f"; - //扫描图片 - private ImageView scanLipImageView; - //车辆模型顶部动画图片 - private ImageView scanTopImageView; + //车模 + private ImageView scanBottomCarImage; + //扫描束 + private ImageView scanLineImage; + //车辆模型顶部色值加深车模 + private ImageViewClipBounds scanTopImageView; + //车模顶部小部件图片 + private ImageViewClipBounds tipsImageView; //动画组 - private AnimatorSet mAnimatorSet; + private AnimatorSet setAnimation = null; private ValueAnimator mValueAnimator; + private float movement = 1300f; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -67,10 +77,12 @@ public class CheckActivity extends AppCompatActivity { * 列表View初始化 */ public void initView() { - mAnimatorSet = new AnimatorSet(); + setAnimation = new AnimatorSet(); mImageView = findViewById(R.id.btnBack); - scanLipImageView = findViewById(R.id.scan_lip_image); + scanBottomCarImage = findViewById(R.id.scan_car_image); + scanLineImage = findViewById(R.id.scan_line_image); scanTopImageView = findViewById(R.id.scan_car_top_image); + tipsImageView = findViewById(R.id.scan_car_tips); context = mImageView.getContext(); packageName = getPackageName(context); mImageView.setOnClickListener(v -> { @@ -140,18 +152,70 @@ public class CheckActivity extends AppCompatActivity { * **************************************************************************************检测动画 */ public void animation() { - ObjectAnimator animatorForLip = ObjectAnimator.ofFloat(scanLipImageView, "translationX", 1162f); - mValueAnimator = ValueAnimator.ofInt(1162); + ObjectAnimator animatorX = ObjectAnimator.ofFloat(scanLineImage, "translationX", scanBottomCarImage.getWidth(), 0); + ObjectAnimator animatorAl = ObjectAnimator.ofFloat(scanLineImage, "alpha", 0, 1); + setAnimation.playTogether(animatorX, animatorAl); + setAnimation.setDuration(800); + setAnimation.start(); + setAnimation.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + if (scanTopImageView != null) { + movement = (float) scanTopImageView.getWidth(); + scanLineImage.setVisibility(View.VISIBLE); + scanTopImageView.setVisibility(View.VISIBLE); + tipsImageView.setVisibility(View.VISIBLE); + } + if (scanLineImage != null) { + scanLineImage + .animate() + .translationX(movement) + .setDuration(5000) + .setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + animatorScanCarBorder(true, scanTopImageView.getWidth()); + } + + @Override + public void onAnimationEnd(Animator animation) { + + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }).start(); + } + } + }); + } + + /** + * 扫描动画:实现扫描束位移+顶部深色车模及检测元件的显示 + */ + public void animatorScanCarBorder(boolean show, int weight) { + if (show) { + mValueAnimator = ValueAnimator.ofInt(0, weight); + } else { + } mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { - scanTopImageView.getLayoutParams().width = (int) animation.getAnimatedValue(); - scanTopImageView.requestLayout(); + Rect rect = new Rect(0, 0, (int) mValueAnimator.getAnimatedValue(), scanTopImageView.getHeight()); + scanTopImageView.setClip(rect); + tipsImageView.setClip(rect); } }); - mAnimatorSet.playTogether(animatorForLip, mValueAnimator); - mAnimatorSet.setDuration(5000); - mAnimatorSet.start(); + mValueAnimator.setDuration(5000); + mValueAnimator.start(); } /** diff --git a/modules/mogo-module-check/src/main/res/drawable/test_image.png b/modules/mogo-module-check/src/main/res/drawable/test_image.png deleted file mode 100644 index ecf1af07b4..0000000000 Binary files a/modules/mogo-module-check/src/main/res/drawable/test_image.png and /dev/null differ diff --git a/modules/mogo-module-check/src/main/res/layout/activity_check.xml b/modules/mogo-module-check/src/main/res/layout/activity_check.xml index 3d3aa43f34..ee102048ca 100644 --- a/modules/mogo-module-check/src/main/res/layout/activity_check.xml +++ b/modules/mogo-module-check/src/main/res/layout/activity_check.xml @@ -42,33 +42,27 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - - - + android:scaleType="fitXY" + android:src="@drawable/check_scan_second" + android:visibility="invisible" + app:layout_constraintLeft_toLeftOf="@id/scan_car_image" + app:layout_constraintTop_toTopOf="@id/scan_car_image" /> - @@ -96,7 +90,7 @@ app:layout_constraintTop_toBottomOf="@id/check_progress_text" />