summaryrefslogtreecommitdiffstats
path: root/tests/HwAccelerationTest
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-10-07 15:07:45 -0700
committerRomain Guy <romainguy@google.com>2010-10-07 15:07:45 -0700
commit14830948d02f768c41b97b7a8d15e1b3cab78267 (patch)
tree349cf9a5e1120ca3bc92807efb3db10ff11a8468 /tests/HwAccelerationTest
parent6b7bd24659fb175fe1f0e97c86c18969918b496a (diff)
downloadframeworks_base-14830948d02f768c41b97b7a8d15e1b3cab78267.zip
frameworks_base-14830948d02f768c41b97b7a8d15e1b3cab78267.tar.gz
frameworks_base-14830948d02f768c41b97b7a8d15e1b3cab78267.tar.bz2
Add 3D transforms support to all gradients.
Change-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758
Diffstat (limited to 'tests/HwAccelerationTest')
-rw-r--r--tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java103
1 files changed, 102 insertions, 1 deletions
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
index 769bfdd..8fa626b 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/GradientsActivity.java
@@ -18,11 +18,16 @@ package com.android.test.hwui;
import android.app.Activity;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
+import android.graphics.RadialGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Shader;
+import android.graphics.SweepGradient;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
@@ -36,8 +41,13 @@ public class GradientsActivity extends Activity {
super.onCreate(savedInstanceState);
final FrameLayout layout = new FrameLayout(this);
+
final ShadersView shadersView = new ShadersView(this);
final GradientView gradientView = new GradientView(this);
+ final RadialGradientView radialGradientView = new RadialGradientView(this);
+ final SweepGradientView sweepGradientView = new SweepGradientView(this);
+ final BitmapView bitmapView = new BitmapView(this);
+
final SeekBar rotateView = new SeekBar(this);
rotateView.setMax(360);
rotateView.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@@ -51,13 +61,29 @@ public class GradientsActivity extends Activity {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- gradientView.setRotationY((float)progress);
+ gradientView.setRotationY((float) progress);
+ radialGradientView.setRotationX((float) progress);
+ sweepGradientView.setRotationY((float) progress);
+ bitmapView.setRotationX((float) progress);
}
});
layout.addView(shadersView);
layout.addView(gradientView, new FrameLayout.LayoutParams(
200, 200, Gravity.CENTER));
+
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(200, 200, Gravity.CENTER);
+ lp.setMargins(220, 0, 0, 0);
+ layout.addView(radialGradientView, lp);
+
+ lp = new FrameLayout.LayoutParams(200, 200, Gravity.CENTER);
+ lp.setMargins(440, 0, 0, 0);
+ layout.addView(sweepGradientView, lp);
+
+ lp = new FrameLayout.LayoutParams(200, 200, Gravity.CENTER);
+ lp.setMargins(220, -220, 0, 0);
+ layout.addView(bitmapView, lp);
+
layout.addView(rotateView, new FrameLayout.LayoutParams(
300, FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM));
@@ -65,6 +91,32 @@ public class GradientsActivity extends Activity {
setContentView(layout);
}
+ static class BitmapView extends View {
+ private final Paint mPaint;
+
+ BitmapView(Context c) {
+ super(c);
+
+ Bitmap texture = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1);
+ BitmapShader shader = new BitmapShader(texture, Shader.TileMode.REPEAT,
+ Shader.TileMode.REPEAT);
+ mPaint = new Paint();
+ mPaint.setShader(shader);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ setMeasuredDimension(200, 200);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
+ }
+ }
+
static class GradientView extends View {
private final Paint mPaint;
@@ -90,6 +142,55 @@ public class GradientsActivity extends Activity {
}
}
+ static class RadialGradientView extends View {
+ private final Paint mPaint;
+
+ RadialGradientView(Context c) {
+ super(c);
+
+ RadialGradient gradient = new RadialGradient(0.0f, 0.0f, 100.0f, 0xff000000, 0xffffffff,
+ Shader.TileMode.MIRROR);
+ mPaint = new Paint();
+ mPaint.setShader(gradient);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ setMeasuredDimension(200, 200);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
+ }
+ }
+
+ static class SweepGradientView extends View {
+ private final Paint mPaint;
+
+ SweepGradientView(Context c) {
+ super(c);
+
+ SweepGradient gradient = new SweepGradient(100.0f, 100.0f, 0xff000000, 0xffffffff);
+ mPaint = new Paint();
+ mPaint.setShader(gradient);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ setMeasuredDimension(200, 200);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mPaint);
+ }
+ }
+
static class ShadersView extends View {
private final Paint mPaint;
private final float mDrawWidth;