aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar ziadb <ziadb@google.com>2018-07-12 16:10:55 -0400
committerGravatar Ziad Ben Hadj-Alouane <ziadb@google.com>2018-07-13 18:06:50 +0000
commitbe396c05f904af1ced1c902df230098ad11555d7 (patch)
treee60cd7055f258dba92bcca592c01efe5b9d2a634 /platform_tools
parent0df21136e3dc5434149695f09b79aff271430365 (diff)
SkAR Java: Animation support
Bug: skia: Change-Id: Ia43ccd7d9969e5167e6cd6f561b2d6d604e700a1 Reviewed-on: https://skia-review.googlesource.com/141100 Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'platform_tools')
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java16
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/HelloSkARActivity.java23
2 files changed, 39 insertions, 0 deletions
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java
index 00243193cd..c448ffeb42 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java
@@ -75,6 +75,22 @@ public class DrawManager {
canvas.restore();
}
+ // Sample function for drawing an animated round rect
+ public void drawAnimatedRoundRect(Canvas canvas, float radius) {
+ if (modelMatrices.isEmpty()) {
+ return;
+ }
+ Paint p = new Paint();
+ p.setColorFilter(lightFilter);
+ p.setARGB(180, 100, 0, 100);
+
+ canvas.save();
+ canvas.setMatrix(SkARMatrix.createPerspectiveMatrix(modelMatrices.get(0),
+ viewMatrix, projectionMatrix, viewportWidth, viewportHeight));
+ canvas.drawRoundRect(0,0, 0.5f, 0.5f, radius, radius, p);
+ canvas.restore();
+ }
+
// Sample function for drawing a rect
public void drawRect(Canvas canvas) {
if (modelMatrices.isEmpty()) {
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/HelloSkARActivity.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/HelloSkARActivity.java
index b2d3cfd534..7bd4085ff8 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/HelloSkARActivity.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/HelloSkARActivity.java
@@ -16,6 +16,8 @@
package com.google.ar.core.examples.java.helloskar;
+import android.animation.PropertyValuesHolder;
+import android.animation.ValueAnimator;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PorterDuff;
@@ -94,6 +96,11 @@ public class HelloSkARActivity extends AppCompatActivity implements GLSurfaceVie
// Anchors created from taps used for object placing.
private final ArrayList<Anchor> anchors = new ArrayList<>();
+ // Animation fields
+ float radius;
+ String PROPERTY_RADIUS = "radius";
+ ValueAnimator animator;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -115,6 +122,21 @@ public class HelloSkARActivity extends AppCompatActivity implements GLSurfaceVie
glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
installRequested = false;
+
+ // Animator set up
+ PropertyValuesHolder propertyRadius = PropertyValuesHolder.ofFloat(PROPERTY_RADIUS, 0, 0.5f);
+ animator = new ValueAnimator();
+ animator.setValues(propertyRadius);
+ animator.setDuration(1000);
+ animator.setRepeatCount(ValueAnimator.INFINITE);
+ animator.setRepeatMode(ValueAnimator.REVERSE);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ radius = (float) animation.getAnimatedValue(PROPERTY_RADIUS);
+ }
+ });
+ animator.start();
}
@Override
@@ -359,6 +381,7 @@ public class HelloSkARActivity extends AppCompatActivity implements GLSurfaceVie
drawManager.drawRect(canvas);
drawManager.drawCircle(canvas);
+ drawManager.drawAnimatedRoundRect(canvas, radius);
drawManager.drawText(canvas, "HelloSkAR");
}
}