diff options
author | Luan Nguyen <luann@google.com> | 2015-06-30 12:13:48 -0700 |
---|---|---|
committer | Luan Nguyen <luann@google.com> | 2015-06-30 14:13:14 -0700 |
commit | 6cfe6a8d382002fc9bae18aac4d32f13d49d4324 (patch) | |
tree | 28f4a4e8e6a8a22a9026351746b3355ca1a46404 /docs | |
parent | 041e01bbdffa85b9b5ffba201d36bd566eaa2651 (diff) | |
download | frameworks_base-6cfe6a8d382002fc9bae18aac4d32f13d49d4324.zip frameworks_base-6cfe6a8d382002fc9bae18aac4d32f13d49d4324.tar.gz frameworks_base-6cfe6a8d382002fc9bae18aac4d32f13d49d4324.tar.bz2 |
docs: Move scale Bitmap code to onSurfaceChanged
bug: 21099578
Change-Id: I5e8d1c6c1757ec512ff2695689bc5b8c2c88706f
Diffstat (limited to 'docs')
-rw-r--r-- | docs/html/training/wearables/watch-faces/drawing.jd | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/docs/html/training/wearables/watch-faces/drawing.jd b/docs/html/training/wearables/watch-faces/drawing.jd index 8b6de76..30a7a6f 100644 --- a/docs/html/training/wearables/watch-faces/drawing.jd +++ b/docs/html/training/wearables/watch-faces/drawing.jd @@ -457,9 +457,23 @@ watch face. The bounds take into account any inset areas, such as the "chin" on round devices. You can use this canvas to draw your watch face directly as follows:</p> <ol> -<li>If this is the first invocation of the -<a href="{@docRoot}reference/android/support/wearable/watchface/CanvasWatchFaceService.Engine.html#onDraw(android.graphics.Canvas, android.graphics.Rect)"><code>onDraw()</code></a> -method, scale your background to fit.</li> +<li>Override the +<a href="{@docRoot}reference/android/support/wearable/watchface/CanvasWatchFaceService.Engine.html#onSurfaceChanged(android.view.SurfaceHolder, int, int, int)"><code>onSurfaceChanged()</code></a> +method to scale your background to fit the device any time the view changes. +<pre> +@Override +public void onSurfaceChanged( + SurfaceHolder holder, int format, int width, int height) { + if (mBackgroundScaledBitmap == null + || mBackgroundScaledBitmap.getWidth() != width + || mBackgroundScaledBitmap.getHeight() != height) { + mBackgroundScaledBitmap = Bitmap.createScaledBitmap(mBackgroundBitmap, + width, height, true /* filter */); + } + super.onSurfaceChanged(holder, format, width, height); +} +</pre> +</li> <li>Check whether the device is in ambient mode or interactive mode.</li> <li>Perform any required graphic computations.</li> <li>Draw your background bitmap on the canvas.</li> @@ -482,13 +496,6 @@ public void onDraw(Canvas canvas, Rect bounds) { int width = bounds.width(); int height = bounds.height(); - // Draw the background, scaled to fit. - if (mBackgroundScaledBitmap == null - || mBackgroundScaledBitmap.getWidth() != width - || mBackgroundScaledBitmap.getHeight() != height) { - mBackgroundScaledBitmap = Bitmap.createScaledBitmap(mBackgroundBitmap, - width, height, true); - } canvas.drawBitmap(mBackgroundScaledBitmap, 0, 0, null); // Find the center. Ignore the window insets so that, on round watches |