Slide 1

Slide 1 text

Android Wear Views #AndroidWear MichaƂ Tajchert Polidea, Software Engineer

Slide 2

Slide 2 text

Wear history

Slide 3

Slide 3 text

#dfua ~2012

Slide 4

Slide 4 text

#dfua

Slide 5

Slide 5 text

What is Android Wear?

Slide 6

Slide 6 text

#dfua Android Wear Simplicity Context Extension

Slide 7

Slide 7 text

#dfua

Slide 8

Slide 8 text

View

Slide 9

Slide 9 text

#dfua

Slide 10

Slide 10 text

#dfua This class represents the basic building block for user interface components.

Slide 11

Slide 11 text

WearViewStub Golden View of Wear?

Slide 12

Slide 12 text

Problem?

Slide 13

Slide 13 text

#dfua WearViewStub

Slide 14

Slide 14 text

WearViewStub

Slide 15

Slide 15 text

#dfua WearViewStub Is it perfect?

Slide 16

Slide 16 text

WearViewStub

Slide 17

Slide 17 text

BoxInsetLayout Mind your corners!

Slide 18

Slide 18 text

BoxInsetLayout

Slide 19

Slide 19 text

#dfua BoxInsetLayout

Slide 20

Slide 20 text

CircledImageView Circle-shape all the things!

Slide 21

Slide 21 text

#dfua CircledImageView

Slide 22

Slide 22 text

CircledImageView

Slide 23

Slide 23 text

DismissOverlayView Keep on dismissing!

Slide 24

Slide 24 text

#dfua WindowSwipeToDismiss = false <item name="android:windowSwipeToDismiss" >false</item>

Slide 25

Slide 25 text

#dfua DismissOverlayView dismissOverlayView = (DismissOverlayView) findViewById(R.id.dismiss_plain); gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { @Override public void onLongPress(MotionEvent e) { dismissOverlayView.show(); } });

Slide 26

Slide 26 text

DismissOverlayView

Slide 27

Slide 27 text

DelayedConfirmationView Not so fast!

Slide 28

Slide 28 text

DelayedConfirmationView

Slide 29

Slide 29 text

DelayedConfirmationView

Slide 30

Slide 30 text

#dfua DelayedConfirmationView delayedConfirmationView = (DelayedConfirmationView) findViewById(R.id.delayed_confirmation); delayedConfirmationView.setTotalTimeMs(2000); delayedConfirmationView.setListener(ConfirmationOverlayActivity.this); ... implements DelayedConfirmationView.DelayedConfirmationListener{...} @Override public void onTimerFinished(View view) { view.setPressed(false); } @Override public void onTimerSelected(View view) { view.setPressed(true); delayedConfirmationView.start(); }

Slide 31

Slide 31 text

DelayedConfirmationView

Slide 32

Slide 32 text

GridViewPager Own card structure!

Slide 33

Slide 33 text

#dfua GridViewPager final Resources res = getResources(); final GridViewPager pager = (GridViewPager) findViewById(R.id.pager); pager.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { final boolean round = insets.isRound(); int rowMargin = res.getDimensionPixelOffset(R.dimen.card_margin); int colMargin = res.getDimensionPixelOffset(round ? R.dimen.padding_round : R.dimen. padding_rect); pager.setPageMargins(rowMargin, colMargin); return insets; } }); pager.setAdapter(new GridViewPagerCustomAdapter(this, getFragmentManager()));

Slide 34

Slide 34 text

#dfua GridViewPager

Slide 35

Slide 35 text

GridViewPager

Slide 36

Slide 36 text

CardFragment Fill our card structure!

Slide 37

Slide 37 text

#dfua CardFragment

Slide 38

Slide 38 text

#dfua CardFragment protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wear_activity2); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); CardFragment cardFragment = CardFragment.create(getString(R.string.cftitle), getString(R.string.cfdesc),R.drawable.p); fragmentTransaction.add(R.id.frame_layout, cardFragment); fragmentTransaction.commit(); }

Slide 39

Slide 39 text

CardFragment

Slide 40

Slide 40 text

App that rocks!

Slide 41

Slide 41 text

Thank you @tajchert google.com/+MichalTajchert github.com/tajchert tajchert.pl twitter g+ github www