diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java index 6b619506d1..98112de258 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java @@ -192,7 +192,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener mCircleX) { - //设置半径大小为圆心横坐标到原点的距离 - mRadius = mCircleX; - mRadius = (int) (mCircleX - 0.075 * mRadius); - //因为半径改变了,所以要重新设置一下字体宽度 - mTextPaint.setStrokeWidth((float) (0.025 * mRadius)); - //重新设置字号 - mTextPaint.setTextSize(mRadius / 2); - //重新设置外圆环宽度 -// mArcPaint.setStrokeWidth((float) (0.075 * mRadius)); - mArcPaint.setStrokeWidth((float) (0.17 * mRadius)); - //重新获得字号大小 - mTextSize = (int) mTextPaint.getTextSize(); - } - //画中心园的外接矩形,用来画圆环用 - mArcRectF = new RectF(mCircleX - mRadius, mCircleY - mRadius, mCircleX + mRadius, mCircleY + mRadius); - } - - //当wrap_content的时候,view的大小根据半径大小改变,但最大不会超过屏幕 - private int measure(int measureSpec) { - int result = 0; - int specMode = MeasureSpec.getMode(measureSpec); - int specSize = MeasureSpec.getSize(measureSpec); - if (specMode == MeasureSpec.EXACTLY) { - result = specSize; - } else { - result = (int) (1.075 * mRadius * 2); - if (specMode == MeasureSpec.AT_MOST) { - result = Math.min(result, specSize); - } - } - return result; - - } - - //开始画中间圆、文字和外圆环 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - //画中间圆 - canvas.drawCircle(mCircleX, mCircleY, mRadius, mCirclePaint); - //画圆环 - canvas.drawArc(mArcRectF, mStartSweepValue, mCurrentAngle, false, mArcPaint); - //画文字 - canvas.drawText(String.valueOf(mCurrentPercent) + "%", mCircleX, mCircleY + mTextSize / 4, mTextPaint); - //判断当前百分比是否小于设置目标的百分比 - if (mCurrentPercent < mTargetPercent) { - //当前百分比+1 - mCurrentPercent += 1; - //当前角度+360 - mCurrentAngle += 3.6; - //每10ms重画一次 - postInvalidateDelayed(10); + if (reset) { + canvas.drawColor(Color.TRANSPARENT); + reset = false; } + drawcircle(canvas); } - //设置目标的百分比 - public void setTargetPercent(int percent) { - this.mTargetPercent = percent; + private void drawcircle(Canvas canvas) { + int height = getMeasuredWidth(); + int width = getMeasuredWidth(); + //半径 = 宽/2-圆环的宽度 + int radius = width / 2 - arcradus; + int cx = width / 2; + int cy = height / 2; + pathPaint.setColor(Color.BLUE); + //绘制大圆 + canvas.drawCircle(width / 2, height / 2, radius + arcradus + / 2 + 0.5f, pathPaint); + //绘制小圆 + canvas.drawCircle(width / 2, height / 2, radius - arcradus + / 2 - 0.5f, pathPaint); + + // 环形颜色填充 + SweepGradient sweepGradient = + new SweepGradient(width / 2, height / 2, arcColors, null); + fillArcPaint.setShader(sweepGradient); + // 设置画笔为白色 + + // 模糊效果 + fillArcPaint.setMaskFilter(mBlur); + // 设置线的类型,边是圆的 + fillArcPaint.setStrokeCap(Paint.Cap.ROUND); + + //设置圆弧的宽度 + fillArcPaint.setStrokeWidth(arcradus + 1); + // 确定圆弧的绘制位置,也就是里面圆弧坐标和外面圆弧坐标 + oval.set(width / 2 - radius, height / 2 - radius, width + / 2 + radius, height / 2 + radius); + // 画圆弧,第二个参数为:起始角度,第三个为跨的角度,第四个为true的时候是实心,false的时候为空心 + canvas.drawArc(oval, + 0, + ((float) progress / max) * 360, + false, + fillArcPaint); + } + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + this.invalidate(); + } + + public int getMax() { + return max; + } + + public void setMax(int max) { + this.max = max; + } + + public int[] getArcColors() { + return arcColors; + } + + public void setArcColors(int[] arcColors) { + this.arcColors = arcColors; +// this.invalidate(); + } + + /** + * 描述:重置进度 + * + * @throws + */ + public void reset() { + reset = true; + this.progress = 0; + this.invalidate(); } } diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java index 084475dd0d..42f1aa3342 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java @@ -1,6 +1,7 @@ package com.mogo.module.media.window; import android.content.Context; +import android.graphics.Color; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -68,6 +69,7 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { private ICallProviderResponse mCallProviderResponse; private CircleNumberProgress mPercentageRingView; +// private PercentageRingView mPercentageRingView; private ImageView mPauseImage; private AnimCircleImageView mAnimCircleImageView; @@ -149,6 +151,15 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { mAnimCircleImageView = mWindowView.findViewById(R.id.window_circle_img_new); mPauseImage = mWindowView.findViewById(R.id.window_play_pause_new); +// int[] arcColors = new int[]{ +// Color.parseColor("#1Affffff"), +// Color.parseColor("#80ffffff"), +// Color.parseColor("#BFffffff"), +// Color.parseColor("#ffffff") +// }; +// +// mPercentageRingView.setArcColors(arcColors); + if (mPauseImage != null) { mPauseImage.setImageResource(R.drawable.module_media_window_pop_pause_new); } @@ -366,7 +377,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { @Override public void onMusicPlaying() { Logger.d(TAG, "onMusicPlaying===" + mMediaInfoData); - Log.d(TAG, "onMusicPlaying===" + mMediaInfoData); isFirstPlay = false; updateWindowUI(false); if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { @@ -393,7 +403,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { @Override public void onMusicPause() { Logger.d(TAG, "onMusicPause: ===" + mMediaInfoData); - Log.d(TAG, "onMusicPause: ===" + mMediaInfoData); if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { if (mPauseImage != null) { mPauseImage.setImageResource(R.drawable.module_media_window_pop_pause_new); @@ -418,7 +427,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { @Override public void onMusicStopped() { Logger.d(TAG, "onMusicStopped===" + mMediaInfoData); - Log.d(TAG, "onMusicStopped===" + mMediaInfoData); if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { if (mPauseImage != null) { mPauseImage.setImageResource(R.drawable.module_media_window_pop_pause_new); @@ -443,7 +451,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { @Override public void onMediaInfoChanged(MediaInfoData mediaInfoData) { Logger.d(TAG, "onMediaInfoChanged: " + mediaInfoData); - Log.d(TAG, "onMediaInfoChanged:" + mediaInfoData); mMediaInfoData = mediaInfoData; addWindowView(); updateWindowUI(); @@ -458,7 +465,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { (int) ((current * 1.0f * 100) / (total * 1.0f)); if (mPercentageRingView != null) { mPercentageRingView.setVisibility(View.VISIBLE); - Log.d(TAG, "progress vr = " + progress); mPercentageRingView.setProgress(progress); } } catch (Exception e) { @@ -477,7 +483,6 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { int progress = (int) ((current * 1.0f * 100) / (total * 1.0f)); if (mWindowProgress != null) { -// Log.d(TAG, "progress = " + progress); mWindowProgress.setProgress(progress); } } catch (Exception e) { diff --git a/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml b/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml index 606fb00f07..9766ec9ffb 100644 --- a/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml +++ b/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml @@ -23,10 +23,7 @@ - - - - +