aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Palmer <felix.palmer@metaswitch.com>2011-12-04 20:00:07 -0800
committerFelix Palmer <felix.palmer@metaswitch.com>2011-12-04 20:00:07 -0800
commit35d90a74d5f8a7c6705200517fa447bea697de71 (patch)
tree18c43c9ac689da50e182749426f24a9622091fb1
parent8d8499861a5eb6f238616b11cf5f7da0175efa90 (diff)
downloadandroid_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.java33
-rw-r--r--src/com/pheelicks/visualizer/VisualizerView.java13
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