| Index: platform_tools/android/examples/hello_skia_app/src/com/example/HelloSkiaActivity.java
|
| diff --git a/platform_tools/android/examples/hello_skia_app/src/com/example/HelloSkiaActivity.java b/platform_tools/android/examples/hello_skia_app/src/com/example/HelloSkiaActivity.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..53daeaf756ecb5eaa32ed01a7f53f32019a56153
|
| --- /dev/null
|
| +++ b/platform_tools/android/examples/hello_skia_app/src/com/example/HelloSkiaActivity.java
|
| @@ -0,0 +1,74 @@
|
| +package com.example;
|
| +
|
| +import java.util.Timer;
|
| +import java.util.TimerTask;
|
| +
|
| +import android.app.Activity;
|
| +import android.content.Context;
|
| +import android.graphics.Bitmap;
|
| +import android.graphics.Canvas;
|
| +import android.os.Bundle;
|
| +import android.os.SystemClock;
|
| +import android.util.Log;
|
| +import android.view.View;
|
| +
|
| +public class HelloSkiaActivity extends Activity
|
| +{
|
| + private SkiaDrawView fMainView;
|
| +
|
| + /** Called when the activity is first created. */
|
| + @Override
|
| + public void onCreate(Bundle savedInstanceState) {
|
| + super.onCreate(savedInstanceState);
|
| +
|
| + // Makes and sets a SkiaDrawView as the only thing seen in this activity
|
| + fMainView = new SkiaDrawView(this);
|
| + setContentView(fMainView);
|
| +
|
| + try {
|
| + // Load Skia and then the app shared object in this order
|
| + System.loadLibrary("skia_android");
|
| + System.loadLibrary("hello_skia_ndk");
|
| +
|
| + } catch (UnsatisfiedLinkError e) {
|
| + Log.d("HelloSkia", "Link Error: " + e);
|
| + return;
|
| + }
|
| +
|
| + // Set a timer that will periodically request an update of the SkiaDrawView
|
| + Timer fAnimationTimer = new Timer();
|
| + fAnimationTimer.schedule(new TimerTask() {
|
| + public void run()
|
| + {
|
| + // This will request an update of the SkiaDrawView, even from other threads
|
| + fMainView.postInvalidate();
|
| + }
|
| + }, 0, 5); // 0 means no delay before the timer starts; 5 means repeat every 5 milliseconds
|
| + }
|
| +
|
| + private class SkiaDrawView extends View {
|
| + Bitmap fSkiaBitmap;
|
| + public SkiaDrawView(Context ctx) {
|
| + super(ctx);
|
| + }
|
| +
|
| + @Override
|
| + protected void onSizeChanged(int w, int h, int oldw, int oldh)
|
| + {
|
| + // Create a bitmap for skia to draw into
|
| + fSkiaBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
|
| + }
|
| +
|
| + @Override
|
| + protected void onDraw(Canvas canvas) {
|
| + // Call into our C++ code that renders to the bitmap using Skia
|
| + drawIntoBitmap(fSkiaBitmap, SystemClock.elapsedRealtime());
|
| +
|
| + // Present the bitmap on the screen
|
| + canvas.drawBitmap(fSkiaBitmap, 0, 0, null);
|
| + }
|
| + }
|
| +
|
| +
|
| + private native void drawIntoBitmap(Bitmap image, long elapsedTime);
|
| +}
|
|
|