From 538d77e58b177bd6c83cb84671900dbdad905a70 Mon Sep 17 00:00:00 2001 From: bxb Date: Wed, 26 Apr 2023 17:53:43 +0800 Subject: [PATCH] =?UTF-8?q?[sweeper-cloud]=E5=BC=B9=E7=AA=97=E5=85=AC?= =?UTF-8?q?=E5=85=B1UI=E5=B8=83=E5=B1=80=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/dialog/SweeperCloudDialog.kt | 132 +++++++++ .../och/sweepercloud/view/BusArcView.java | 190 ------------ .../och/sweepercloud/view/CountDownView.kt | 65 +++++ .../och/sweepercloud/view/SlidePanelView.java | 270 ------------------ .../drawable-xhdpi/sweeper_cloud_rotate.png | Bin 0 -> 1930 bytes .../sweeper_start_auto_not_running.png | Bin 34649 -> 0 bytes .../sweeper_start_auto_running.png | Bin 38605 -> 0 bytes .../drawable/bg_shape_dialog_cloud_view.xml | 4 + .../drawable/shape_sweeper_cloud_rotation.xml | 12 + .../res/drawable/sweeper_task_list_btn.xml | 5 - .../sweeper_task_list_not_selected.xml | 6 - ....xml => sweeper_upload_autopoiltstate.xml} | 0 .../res/layout/dialog_sweeper_cloud_view.xml | 115 ++++++++ 13 files changed, 328 insertions(+), 471 deletions(-) create mode 100644 OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/ui/dialog/SweeperCloudDialog.kt delete mode 100644 OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/BusArcView.java create mode 100644 OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/CountDownView.kt delete mode 100644 OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SlidePanelView.java create mode 100755 OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/sweeper_cloud_rotate.png delete mode 100755 OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/sweeper_start_auto_not_running.png delete mode 100755 OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/sweeper_start_auto_running.png create mode 100644 OCH/sweeper/sweeper-cloud/src/main/res/drawable/bg_shape_dialog_cloud_view.xml create mode 100644 OCH/sweeper/sweeper-cloud/src/main/res/drawable/shape_sweeper_cloud_rotation.xml delete mode 100644 OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_btn.xml delete mode 100644 OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_not_selected.xml rename OCH/sweeper/sweeper-cloud/src/main/res/drawable/{sweeper_task_list_selected.xml => sweeper_upload_autopoiltstate.xml} (100%) create mode 100644 OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/ui/dialog/SweeperCloudDialog.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/ui/dialog/SweeperCloudDialog.kt new file mode 100644 index 0000000000..1eea4fa029 --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/ui/dialog/SweeperCloudDialog.kt @@ -0,0 +1,132 @@ +package com.mogo.och.sweepercloud.ui.dialog + +import android.animation.ObjectAnimator +import android.animation.ValueAnimator +import android.content.Context +import android.text.Html +import android.view.View +import android.view.animation.LinearInterpolator +import android.widget.ImageView +import android.widget.TextView +import androidx.lifecycle.LifecycleObserver +import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog +import com.mogo.och.sweepercloud.R +import com.mogo.och.sweepercloud.view.CountDownView + +/** + * 清扫车云控任务dialog基类 + */ +class SweeperCloudDialog : BaseFloatDialog, LifecycleObserver { + private var commonTitle: TextView? = null //标题 + private var commonLeft: TextView? = null//底部左边按钮 + private var commonMiddle: TextView? = null //底部中间按钮 + private var commonRight: TextView? = null //底部右边按钮 + private var commonCountDown: CountDownView? = null //倒计时 + private var commonContent: TextView? = null //内容 + private var commonTip: TextView? = null //文本提示 + private var countDownImage: ImageView? = null //内容 + private var objectAnimator: ObjectAnimator? = null + + constructor(builder: Builder, context: Context) : super(context) { + commonTitle?.text = builder.titleStr + commonContent?.text = Html.fromHtml(builder.contentStr) + if (builder.tipStr == "") { + commonTip?.visibility = View.GONE + } else { + commonTip?.text = builder.tipStr + } + if (builder.leftStr == "") { + commonLeft?.visibility = View.GONE + } else { + commonLeft?.text = builder.leftStr + } + if (builder.middleStr == "") { + commonMiddle?.visibility = View.GONE + } else { + commonMiddle?.text = builder.middleStr + } + if (builder.rightStr == "") { + commonRight?.visibility = View.GONE + } else { + commonRight?.text = builder.rightStr + } + if (builder.countDownTime == 0) { + commonCountDown?.visibility = View.GONE + } else { + commonCountDown?.startCountDown(builder.countDownTime) + } + commonLeft?.setOnClickListener { + builder.listener?.onConfirm() + objectAnimator?.cancel() + commonCountDown?.stopCountDown() + dismiss() + } + commonMiddle?.setOnClickListener { + builder.listener?.onNext() + objectAnimator?.cancel() + commonCountDown?.stopCountDown() + dismiss() + } + commonRight?.setOnClickListener { + builder.listener?.onRefuse() + objectAnimator?.cancel() + commonCountDown?.stopCountDown() + dismiss() + } + commonCountDown?.setCountDownListener(object : CountDownView.CountDownListener { + override fun stop() { + builder.listener?.onCountDownStop() + objectAnimator?.cancel() + commonCountDown?.stopCountDown() + dismiss() + } + + }) + countDownImage?.let { startAnima(it) } + } + + init { + setContentView(R.layout.dialog_sweeper_cloud_view) + setCanceledOnTouchOutside(false) + commonTitle = findViewById(R.id.sweeper_cloud_title) + commonContent = findViewById(R.id.sweeper_cloud_content) + commonTip = findViewById(R.id.sweeper_cloud_tip) + commonLeft = findViewById(R.id.sweeper_cloud_left) + commonMiddle = findViewById(R.id.sweeper_cloud_middle) + commonRight = findViewById(R.id.sweeper_cloud_right) + countDownImage = findViewById(R.id.sweeper_cloud_imageview) + commonCountDown = findViewById(R.id.sweeper_cloud_countdown) + } + + interface SweeperCloudClickListener { + fun onConfirm() + fun onRefuse() + fun onCountDownStop() + fun onNext() + } + + class Builder { + var titleStr: String = "" + var contentStr: String = "" + var tipStr: String = "" + var leftStr: String = "" + var middleStr: String = "" + var rightStr: String = "" + var countDownTime: Int = 0 + var listener: SweeperCloudClickListener? = null + fun build(context: Context): SweeperCloudDialog { + return SweeperCloudDialog(this, context) + } + } + + /** + * 启动动画 + */ + private fun startAnima(imageView: ImageView) { + objectAnimator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 359f) + objectAnimator?.repeatCount = ValueAnimator.INFINITE + objectAnimator?.duration = 1500 + objectAnimator?.interpolator = LinearInterpolator() + objectAnimator?.start() + } +} \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/BusArcView.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/BusArcView.java deleted file mode 100644 index 84e9e814ab..0000000000 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/BusArcView.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.mogo.och.sweepercloud.view; - -import android.animation.ValueAnimator; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Typeface; -import android.util.AttributeSet; -import android.util.DisplayMetrics; -import android.view.View; - -import androidx.annotation.Nullable; - -import com.mogo.och.sweepercloud.R; - -/** - * created by wujifei on 2021/3/24 16:20 - * describe: - */ -public class BusArcView extends View { - - //中心的文字描述 - private String mDes = "KM/H"; - //根据数据显示的圆弧Paint - private Paint mArcPaint; - //圆弧颜色 - private int mArcColor; - //圆弧的画笔的宽度 - private float mStrokeWith = getResources().getDimension(R.dimen.sweeper_ext_arcView_stroke_with); - //文字描述的paint - private Paint mTextPaint; - - //当前进度夹角大小 - private float mIncludedAngle = 0; - //当前数据 - private int currentValue; - //最大数据 - private int maxValue = 240; - //圆弧背景的开始和结束间的夹角大小 - private float mAngle = 270; - //上次绘制圆弧夹角 - private float lastAngle = 0; - - public BusArcView(Context context) { - this(context, null); - } - - public BusArcView(Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public BusArcView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - //初始化paint - initPaint(); - //绘制弧度 - drawArc(canvas); - //绘制文本 - drawText(canvas); - } - - private void drawText(Canvas canvas) { - Rect mRect = new Rect(); - String mValue = String.valueOf(currentValue); - mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); - //绘制中心的数值 - mTextPaint.getTextBounds(mValue, 0, mValue.length(), mRect); - canvas.drawText(mValue, getWidth() / 2, getHeight() / 2 + mRect.height() / 2 - 10, mTextPaint); - - mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); - //绘制中心文字描述 - mTextPaint.setTextSize(getResources().getDimension(R.dimen.sweeper_ext_arcView_des_text_size)); - mTextPaint.getTextBounds(mDes, 0, mDes.length(), mRect); - canvas.drawText(mDes, getWidth() / 2, getHeight() * 17 / 20 + mRect.height() / 2, mTextPaint); - } - - private void drawArc(Canvas canvas) { - //绘制圆弧背景 - RectF mRectF = new RectF(mStrokeWith, mStrokeWith, getWidth() - mStrokeWith, getHeight() - mStrokeWith); - canvas.drawArc(mRectF, 135, mAngle, false, mArcPaint); - - //绘制当前数值对应的圆弧 - mArcPaint.setColor(mArcColor); - //根据当前数据绘制对应的圆弧 - canvas.drawArc(mRectF, 135, mIncludedAngle, false, mArcPaint); - } - - private void initPaint() { - //圆弧的paint - mArcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - //抗锯齿 - mArcPaint.setAntiAlias(true); - mArcPaint.setColor(Color.parseColor("#151D4C")); - //设置透明度(数值为0-255) - mArcPaint.setAlpha(100); - //设置画笔的画出的形状 - mArcPaint.setStrokeJoin(Paint.Join.ROUND); - mArcPaint.setStrokeCap(Paint.Cap.ROUND); - //设置画笔类型 - mArcPaint.setStyle(Paint.Style.STROKE); - //画笔宽度 - mArcPaint.setStrokeWidth(mStrokeWith); - - //中心文字的paint - mTextPaint = new Paint(); - mTextPaint.setAntiAlias(true); - mTextPaint.setColor(Color.parseColor("#FFFFFF")); - //设置文本的对齐方式 - mTextPaint.setTextAlign(Paint.Align.CENTER); - //mTextPaint.setTextSize(getResources().getDimensionPixelSize(R.dimen.dp_12)); - mTextPaint.setTextSize(getResources().getDimension(R.dimen.sweeper_ext_arcView_center_text_size)); - - } - - - /** - * 为绘制弧度及数据设置动画 - * - * @param startAngle 开始的弧度 - * @param currentAngle 需要绘制的弧度 - * @param time 动画执行的时长 - */ - private void setAnimation(float startAngle, float currentAngle, int time) { - //绘制当前数据对应的圆弧的动画效果 - ValueAnimator progressAnimator = ValueAnimator.ofFloat(startAngle, currentAngle); - progressAnimator.setDuration(time); - progressAnimator.setTarget(mIncludedAngle); - progressAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - mIncludedAngle = (float) animation.getAnimatedValue(); - //重新绘制,不然不会出现效果 - postInvalidate(); - } - }); - //开始执行动画 - progressAnimator.start(); - } - - - /** - * 设置弧形颜色 - * - * @param value 颜色值 - */ - public void setArcColor(int value) { - mArcColor = value; - } - - /** - * 设置数据 - * - * @param value 当前绘制的值 - */ - public void setValues(int value) { - //完全覆盖 - if (value > maxValue) { - value = maxValue; - } - if (value < 0) { - value = 0; - } - currentValue = value; - //计算弧度比重 - float scale = (float) currentValue / maxValue; - //计算弧度 - float currentAngle = scale * mAngle; - //开始执行动画 - setAnimation(lastAngle, currentAngle, 1000); - lastAngle = currentAngle; - //重新绘制 - postInvalidate(); - } - - - private float dp2px(float dp) { - DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics(); - return dp * metrics.density; - } -} diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/CountDownView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/CountDownView.kt new file mode 100644 index 0000000000..5790ef8072 --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/CountDownView.kt @@ -0,0 +1,65 @@ +package com.mogo.och.sweepercloud.view + +import android.content.Context +import android.os.Handler +import android.os.Message +import android.util.AttributeSet +import androidx.appcompat.widget.AppCompatTextView +/** + * 倒计时View + */ +class CountDownView : AppCompatTextView, Handler.Callback { + private val mHandler = Handler(this) + private var mCountDownTime = DEFAULT_COUNT_DOWN_TIME + private var listener: CountDownListener? = null + + constructor(context: Context?) : super(context!!) {} + constructor(context: Context?, attrs: AttributeSet?) : super(context!!, attrs) {} + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context!!, attrs, defStyleAttr) {} + + override fun handleMessage(message: Message): Boolean { + if (message.what == MSG_COUNT_DOWN) { + mCountDownTime-- + if (mCountDownTime > 0) { + text = "$mCountDownTime" + mHandler.sendEmptyMessageDelayed(MSG_COUNT_DOWN, DEFAULT_COUNT_DOWN_DELAY) + } else { + stopCountDown() + listener?.stop() + } + } + return false + } + + fun setCountDownListener(listener: CountDownListener?) { + this.listener = listener + } + + /** + * 启动倒计时 + */ + fun startCountDown(countDownTime:Int) { + mHandler.removeMessages(MSG_COUNT_DOWN) + text = "$countDownTime" + mCountDownTime=countDownTime + mHandler.sendEmptyMessageDelayed(MSG_COUNT_DOWN, DEFAULT_COUNT_DOWN_DELAY) + } + + /** + * 停止倒计时 + */ + fun stopCountDown() { + mHandler.removeMessages(MSG_COUNT_DOWN) + text = null + } + + interface CountDownListener { + fun stop() + } + + companion object { + private const val DEFAULT_COUNT_DOWN_TIME = 15 + private const val MSG_COUNT_DOWN = 1001 + private const val DEFAULT_COUNT_DOWN_DELAY = 1000L + } +} \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SlidePanelView.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SlidePanelView.java deleted file mode 100644 index 7479fd3d94..0000000000 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SlidePanelView.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.mogo.och.sweepercloud.view; - -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.LinearGradient; -import android.graphics.Matrix; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Shader; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -import android.view.animation.DecelerateInterpolator; - -import androidx.annotation.Nullable; - -import com.mogo.och.sweepercloud.R; - -/** - * 滑块滑动面板 - * - * @author tongchenfei - */ -public class SlidePanelView extends View { - private static final String TAG = "SlidePanelView"; - - public SlidePanelView(Context context) { - this(context, null); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public SlidePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlidePanelView); - textSize = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_textSize, textSize); - BLOCK_START_X = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_X, BLOCK_START_X); - BLOCK_START_Y = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_Y, BLOCK_START_Y); - NORMAL_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_LEFT, NORMAL_TEXT_MARGIN_LEFT); - NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT); - SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT); - SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT); - init(); - } - - private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - - private static int textSize = 40; - private static int BLOCK_START_X = 15; - private static int BLOCK_START_Y = 15; - private static int NORMAL_TEXT_MARGIN_LEFT = 40; - private static int NORMAL_TEXT_MARGIN_RIGHT = 60; - private static int SHORT_TEXT_MARGIN_LEFT = 60; - private static int SHORT_TEXT_MARGIN_RIGHT = 70; - - private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - - private OnSlidePanelMoveToEndListener moveToEndListener; - - private int blockWidth = 0; - private int blockOffset = 0; - - private float lastX; - private boolean isToEnd = false; - - private static final String STRING_SLIDE_TO_RIGHT = "向右滑动"; - private RectF bgRectF; - private Bitmap bmBlock; - - private final Matrix gradientMatrix = new Matrix(); - private float matrixTranslate; - private final Rect textRect = new Rect(); - private LinearGradient textGradient; - - private ObjectAnimator matrixAnim; - - private String blockText = STRING_SLIDE_TO_RIGHT; - private Paint.FontMetrics blockTextMetrics = new Paint.FontMetrics(); - - private static final int GRADIENT_OFFSET = 200; - - public void setOnSlidePanelMoveToEndListener(OnSlidePanelMoveToEndListener moveToEndListener) { - this.moveToEndListener = moveToEndListener; - } - - private void setBlockOffset(int blockOffset) { - this.blockOffset = blockOffset; - invalidate(); - } - - private void setMatrixTranslate(float matrixTranslate) { - this.matrixTranslate = matrixTranslate; - invalidate(); - } - - public void setText(String text) { - this.blockText = text; - requestLayout(); - invalidate(); - } - - private void init() { - bgRectF = new RectF(0, 0, 0, 0); - bgPaint.setColor(Color.parseColor("#CC0F1325")); - bgPaint.setStyle(Paint.Style.FILL); - - textPaint.setStyle(Paint.Style.FILL); - textPaint.setTextSize(textSize); - textPaint.setTextAlign(Paint.Align.LEFT); - textGradient = new LinearGradient(-GRADIENT_OFFSET, 0, 0, 0, new int[]{0x33ffffff, 0xffffffff, 0x33ffffff}, null, Shader.TileMode.CLAMP); - textGradient.setLocalMatrix(gradientMatrix); - textPaint.setShader(textGradient); - textPaint.getFontMetrics(blockTextMetrics); - - bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.sweeper_base_slide_block); - blockWidth = bmBlock.getWidth(); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int widthMode = MeasureSpec.getMode(widthMeasureSpec); - int heightMode = MeasureSpec.getMode(heightMeasureSpec); - int widthSize; - int heightSize; - - if (blockText.length() < 5) { - textMarginLeft = SHORT_TEXT_MARGIN_LEFT; - textMarginRight = SHORT_TEXT_MARGIN_RIGHT; - } else { - textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; - textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; - } - - if (widthMode == MeasureSpec.AT_MOST) { - // 宽度根据图片大小,字符串长度,各种间隔确定 - // 高度根据图片大小和上下间隔确定 - textPaint.getTextBounds(blockText, 0, blockText.length(), textRect); - widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width(); - heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight(); - widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); - heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode); - } - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - - private float textOffset = 0; - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - if (bgRectF != null){ - bgRectF.left = 0; - bgRectF.top = 0; - bgRectF.right = w; - bgRectF.bottom = h; - } - - if (matrixAnim != null) { - matrixAnim.cancel(); - } - textOffset = (getHeight() - blockTextMetrics.ascent - blockTextMetrics.descent) / 2; - matrixAnim = ObjectAnimator.ofFloat(this, "matrixTranslate", 0, w + GRADIENT_OFFSET).setDuration(2000); - matrixAnim.setRepeatCount(ValueAnimator.INFINITE); - matrixAnim.start(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - if (matrixAnim != null) { - matrixAnim.start(); - } - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (matrixAnim != null) { - matrixAnim.cancel(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - float x = event.getX(); - float y = event.getY(); - - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - if (x > BLOCK_START_X + blockOffset && x < blockWidth + BLOCK_START_X + blockOffset && y > BLOCK_START_Y && y < getHeight() - BLOCK_START_Y) { - isToEnd = false; - lastX = x; - } - break; - case MotionEvent.ACTION_MOVE: - if (lastX != 0) { - blockOffset = (int) (x - lastX); - if (blockOffset < 0) { - blockOffset = 0; - } - if (blockOffset + BLOCK_START_X + blockWidth > getWidth()) { - // 超出右边界 - blockOffset = getWidth() - BLOCK_START_X - blockWidth; - if (!isToEnd) { - isToEnd = true; - if (moveToEndListener != null) { - moveToEndListener.moveToEnd(); - } - startBlockBackAnim(); - } - } - invalidate(); - } - break; - case MotionEvent.ACTION_UP: - // 执行滑块回归动画 - if (!isToEnd) { - startBlockBackAnim(); - } - break; - default: - break; - } - - return true; - } - - private void startBlockBackAnim() { - ObjectAnimator blockBackanimator = ObjectAnimator.ofInt(this, "blockOffset", blockOffset, 0); - blockBackanimator.setInterpolator(new DecelerateInterpolator()); - blockBackanimator.setDuration(1000 * blockOffset / getWidth()); - blockBackanimator.start(); - lastX = 0; - } - - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - // 画背景 - canvas.drawRoundRect(bgRectF, (float) getHeight() / 2, (float) getHeight() / 2, bgPaint); - // 画文字 - gradientMatrix.setTranslate(matrixTranslate, 0); - textGradient.setLocalMatrix(gradientMatrix); - canvas.save(); - canvas.drawText(blockText, blockWidth + BLOCK_START_X + textMarginLeft, textOffset, textPaint); - canvas.restore(); - // 画滑块 - canvas.drawBitmap(bmBlock, BLOCK_START_X + blockOffset, BLOCK_START_Y, blockPaint); - } - - public interface OnSlidePanelMoveToEndListener { - /** - * 滑块滑到了末尾 - */ - void moveToEnd(); - } -} diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/sweeper_cloud_rotate.png b/OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/sweeper_cloud_rotate.png new file mode 100755 index 0000000000000000000000000000000000000000..3e49a07b0045f38ec6c371e4fb8446b13a9a26c3 GIT binary patch literal 1930 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 diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/bg_shape_dialog_cloud_view.xml b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/bg_shape_dialog_cloud_view.xml new file mode 100644 index 0000000000..e6970921d5 --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/bg_shape_dialog_cloud_view.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/shape_sweeper_cloud_rotation.xml b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/shape_sweeper_cloud_rotation.xml new file mode 100644 index 0000000000..2cd19d1ad2 --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/shape_sweeper_cloud_rotation.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_btn.xml b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_btn.xml deleted file mode 100644 index 9307ba16bd..0000000000 --- a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_btn.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_not_selected.xml b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_not_selected.xml deleted file mode 100644 index 11995408cb..0000000000 --- a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_not_selected.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_selected.xml b/OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_upload_autopoiltstate.xml similarity index 100% rename from OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_task_list_selected.xml rename to OCH/sweeper/sweeper-cloud/src/main/res/drawable/sweeper_upload_autopoiltstate.xml diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml b/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml new file mode 100644 index 0000000000..5525e62f4f --- /dev/null +++ b/OCH/sweeper/sweeper-cloud/src/main/res/layout/dialog_sweeper_cloud_view.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file