android wear - watch face

22
Android Wear Créez votre propre Watchface Florent Champigny Xebia

Upload: florent-champigny

Post on 23-Jan-2017

3.842 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

Android WearCréez votre propre Watchface

Florent ChampignyXebia

AndroidManifest

Déclaré en tant que Service de Wallpaper

permission : android.permission.BIND_WALLPAPER

intent-filter : android.service.wallpaper.WallpaperService

AndroidManifest

Utilise les permissions

com.google.android.permission.PROVIDE_BACKGROUND

android.permission.WAKE_LOCK

AndroidManifest

Déclare les meta-datas

android.service.wallpaper -> xml contenant <wallpaper/>

com.google.android.wearable.watchface.preview -> Drawable

com.google.android.wearable.watchface.preview_circular -> Drawable

CanvasWatchFaceService

public class MyWatchFaceService extends CanvasWatchFaceService {

@Override public Engine onCreateEngine() {

}

}

CanvasWatchFaceService.Engine

void onCreate(SurfaceHolder holder);

void onDestroy();

void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height);

void onTimeTick();

void onVisibilityChanged(boolean visible);

void onDraw(Canvas canvas, Rect bounds);

void onAmbientModeChanged(boolean inAmbientMode);

Ambiant mode

Ambiant

Canvas - Paint

ColorStrokeWidthAntiAliasStrokeCapStrokeJoinShadowLayerStyle

Canvas - Paint

ColorStrokeWidth

AntiAliasStrokeCapStrokeJoinShadowLayerStyle

(Épaisseur du pinceau)

Canvas - Paint

ColorStrokeWidth

AntiAliasStrokeCapStrokeJoinShadowLayerStyle

(Lissage de la texture)

Canvas - Paint

ColorStrokeWidthAntiAlias

StrokeCapStrokeJoinShadowLayerStyle

BUTTROUND

SQUARE

Canvas - Paint

ColorStrokeWidthAntiAliasStrokeCap

StrokeJoinShadowLayerStyle

MITER ROUND BEVEL

Canvas - Paint

ColorStrokeWidthAntiAliasStrokeCapStrokeJoinShadowLayer

Style

FILL STROKE STROKE & FILL

Canvas

canvas.drawBitmap( bitmap, left, top, paint);canvas.drawRect(left, top, right, bottom, paint);

…canvas.drawRoundRect(left, top, right, bottom, rx, ry, paint);canvas.drawLine(startX, startY, stopX, stopY, paint);canvas.drawOval(rect , paint);canvas.drawCircle(centerX, centerY, radius, paint);

Canvas

canvas.save();canvas.restore();

canvas.rotate(angle, centerX, centerY);canvas.translate(dx, dy);canvas.scale(sx, sy);

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.5f ,0.5f, 1f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1

Canvas

canvas.drawBitmap(background,0,0,p);

canvas.save();canvas.rotate(90, 0.5f, 0.5f);canvas.drawRect(0.45f ,0.5f, 0.55f, 1f, p);canvas.restore();

0 y 10

x

1