diff options
author | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-04 20:00:07 -0800 |
---|---|---|
committer | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-04 20:00:07 -0800 |
commit | 35d90a74d5f8a7c6705200517fa447bea697de71 (patch) | |
tree | 18c43c9ac689da50e182749426f24a9622091fb1 | |
parent | 8d8499861a5eb6f238616b11cf5f7da0175efa90 (diff) | |
download | android_external_android-visualizer-35d90a74d5f8a7c6705200517fa447bea697de71.tar.gz android_external_android-visualizer-35d90a74d5f8a7c6705200517fa447bea697de71.tar.bz2 android_external_android-visualizer-35d90a74d5f8a7c6705200517fa447bea697de71.zip |
Added color cycling to CircleRenderer
-rw-r--r-- | src/com/pheelicks/visualizer/CircleRenderer.java | 33 | ||||
-rw-r--r-- | src/com/pheelicks/visualizer/VisualizerView.java | 13 |
2 files changed, 39 insertions, 7 deletions
diff --git a/src/com/pheelicks/visualizer/CircleRenderer.java b/src/com/pheelicks/visualizer/CircleRenderer.java index 2f73524..8cdae2c 100644 --- a/src/com/pheelicks/visualizer/CircleRenderer.java +++ b/src/com/pheelicks/visualizer/CircleRenderer.java @@ -1,12 +1,14 @@ package com.pheelicks.visualizer; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; public class CircleRenderer extends Renderer { private Paint mPaint; + private boolean mCycleColor; /** * Renders the audio data onto a pulsing circle @@ -16,13 +18,34 @@ public class CircleRenderer extends Renderer public CircleRenderer(Canvas canvas, Paint paint) { + this(canvas, + paint, + false); + } + + /** + * Renders the audio data onto a pulsing circle + * @param canvas + * @param paint - Paint to draw lines with + * @param cycleColor - If true the color will change on each frame + */ + public CircleRenderer(Canvas canvas, + Paint paint, + boolean cycleColor) + { super(canvas); mPaint = paint; + mCycleColor = cycleColor; } @Override public void onRender(AudioData data, Rect rect) { + if(mCycleColor) + { + cycleColor(); + } + for (int i = 0; i < data.bytes.length - 1; i++) { float[] cartPoint = { (float)i / (data.bytes.length - 1), @@ -69,4 +92,14 @@ public class CircleRenderer extends Renderer }; return out; } + + private float colorCounter = 0; + private void cycleColor() + { + int r = (int)Math.floor(128*(Math.sin(colorCounter) + 1)); + int g = (int)Math.floor(128*(Math.sin(colorCounter + 2) + 1)); + int b = (int)Math.floor(128*(Math.sin(colorCounter + 4) + 1)); + mPaint.setColor(Color.argb(128, r, g, b)); + colorCounter += 0.03; + } } diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java index 82cba62..1c06533 100644 --- a/src/com/pheelicks/visualizer/VisualizerView.java +++ b/src/com/pheelicks/visualizer/VisualizerView.java @@ -32,7 +32,6 @@ class VisualizerView extends View { private float[] mPoints; private Rect mRect = new Rect(); - private Paint mCirclePaint = new Paint(); private Paint mLinePaint = new Paint(); private Paint mSpecialLinePaint = new Paint(); private Paint mProgressLinePaint = new Paint(); @@ -59,10 +58,6 @@ class VisualizerView extends View { private void init() { mBytes = null; - mCirclePaint.setStrokeWidth(3f); - mCirclePaint.setAntiAlias(true); - mCirclePaint.setColor(Color.argb(255, 222, 92, 143)); - mLinePaint.setStrokeWidth(1f); mLinePaint.setAntiAlias(true); mLinePaint.setColor(Color.argb(88, 0, 128, 255)); @@ -113,7 +108,6 @@ class VisualizerView extends View { int g = (int)Math.floor(128*(Math.sin(colorCounter + 2) + 1)); int b = (int)Math.floor(128*(Math.sin(colorCounter + 4) + 1)); mLinePaint.setColor(Color.argb(128, r, g, b)); - mCirclePaint.setColor(Color.argb(255, g, b, r)); colorCounter += 0.03; } @@ -160,7 +154,12 @@ class VisualizerView extends View { paint2.setColor(Color.argb(200, 11, 111, 233)); mBarGraphRendererTop = new BarGraphRenderer(mCanvas, 4, paint2, true); - mCircleRenderer = new CircleRenderer(mCanvas, paint2); + Paint paint3 = new Paint(); + paint3.setStrokeWidth(3f); + paint3.setAntiAlias(true); + paint3.setColor(Color.argb(255, 222, 92, 143)); + + mCircleRenderer = new CircleRenderer(mCanvas, paint3, true); } // Draw normal line - offset by amplitude |