Navigation Bar の 色も変更できる < s t y l e n a m e = " F r a m e w o r k R o o t . T h e m e " p a r e n t = " a n d r o i d : T h e m e . M a t e r i a l . L i g h t . D a r k A c t i o n B a r " / > < s t y l e n a m e = " T h e m e . I O S c h e d " p a r e n t = " T h e m e . I O S c h e d . B a s e " > < i t e m n a m e = " a n d r o i d : c o l o r P r i m a r y " > @ c o l o r / t h e m e _ p r i m a r y < / i t e m > < i t e m n a m e = " a n d r o i d : c o l o r P r i m a r y D a r k " > @ c o l o r / t h e m e _ p r i m a r y _ d a r k < / i t e m > < i t e m n a m e = " a n d r o i d : c o l o r A c c e n t " > @ c o l o r / t h e m e _ a c c e n t _ 2 < / i t e m >
o i d : s t y l e / T h e m e . M a t e r i a l ( d a r k v e r s i o n ) @ a n d r o i d : s t y l e / T h e m e . M a t e r i a l . L i g h t ( l i g h t v e r s i o n ) @ a n d r o i d : s t y l e / T h e m e . M a t e r i a l . L i g h t . D a r k A c t i o n B a r
影が描かれるのは、z = 0 の平面のみ z 値は Z = e l e v a t i o n + t r a n s l a t i o n Z で計算され る 各 View の z 軸方向の固定位置(elevation)は a n d r o i d : e l e v a t i o n 属性で指定できる 動的に指定するときは V i e w # s e t E l e v a t i o n ( ) を使 う。
t i l s B a s e l p u = a c t i v i t y . g e t L P r e v i e w U t i l s ( ) ; . . . / / F i l l t h e g a p b e t w e e n s t a t u s b a r a n d h e a d e r b a r w i t h c o l o r f l o a t g a p F i l l P r o g r e s s = M a t h . m i n ( M a t h . m a x ( U I U t i l s . g e t P r o g r e s s ( s c r o l l Y , m P h o t o H e i g h t P i x e l s - m H e a d e r T o p C l e a r a n c e * 2 , m P h o t o H e i g h t P i x e l s - m H e a d e r T o p C l e a r a n c e ) , 0 ) , 1 ) ; l p u . s e t V i e w E l e v a t i o n ( m H e a d e r B a c k g r o u n d B o x , g a p F i l l P r o g r e s s * m M a x H e a d e r E l e v a t i o n ) ; l p u . s e t V i e w E l e v a t i o n ( m H e a d e r C o n t e n t B o x , g a p F i l l P r o g r e s s * m M a x H e a d e r E l e v a t i o n + 0 . 1 f ) ; l p u . s e t V i e w E l e v a t i o n ( m A d d S c h e d u l e B u t t o n , g a p F i l l P r o g r e s s * m M a x H e a d e r E l e v a t i o n + m F A B E l e v a t i o n ) ;
I/O アプリでは、セッションの写真やスケジュール追加ボ タンの背景のタッチ・フィードバックをこれで実現してい る。 < r i p p l e x m l n s : a n d r o i d = " h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s / a n d r o i d " a n d r o i d : c o l o r = " @ c o l o r / < i t e m > < s h a p e > < s o l i d a n d r o i d : c o l o r = " @ c o l o r / t h e m e _ a c c e n t _ 1 " / > < / s h a p e > < / i t e m > < / r i p p l e >
ユーザーがタップした場所を中心に、同心円状のアニメーションと共にビューを切り替える / / m H o t S p o t X と m H o t S p o t Y はユーザーがタップした場所 V a l u e A n i m a t o r a n i m a t o r = V i e w A n i m a t i o n U t i l s . c r e a t e C i r c u l a r R e v e a l ( m R e v e a l V i e w , ( i n t ) m H o a n i m a t o r . a d d L i s t e n e r ( n e w A n i m a t o r L i s t e n e r A d a p t e r ( ) { @ O v e r r i d e p u b l i c v o i d o n A n i m a t i o n E n d ( A n i m a t o r a n i m a t i o n ) { s e t C h e c k e d ( m C h e c k e d , f a l s e ) ; } } ) ;
i d : w i n d o w C o n t e n t T r a n s i t i o n s をt r u e にする 2. 共有 View のアニメーションを設定する 3. 遷移アニメーション(e.g. m o v e _ i m a g e )を XML で定義する 4. layout ファイルで、共有するViewのa n d r o i d : v i e w N a m e に 同じ名前(e.g. r o b o t )を指定する 5. A c t i v i t y O p t i o n s . m a k e S c e n e T r a n s i t i o n A n i m a t i o n を 使ってs t a r t A c t i v i t y を呼ぶ < ! - - s p e c i f y s h a r e d e l e m e n t t r a n s i t i o n s - - > < i t e m n a m e = " a n d r o i d : w i n d o w S h a r e d E l e m e n t E n t e r T r a n s i t i o n " > @ t r a n s i t i o n / m o v e _ i m a g e < / i t e m > < i t e m n a m e = " a n d r o i d : w i n d o w S h a r e d E l e m e n t E x i t T r a n s i t i o n " > @ t r a n s i t i o n / m o v e _ i m a g e < / i t e m > A c t i v i t y O p t i o n s o p t i o n s = A c t i v i t y O p t i o n s . m a k e S c e n e T r a n s i t i o n A n i m a t i o n ( t h i s , a n d r o i d R o b o t V i e w , " r o b o t " ) ; s t a r t A c t i v i t y ( i n t e n t , o p t i o n s . t o B u n d l e ( ) ) ;
i t e m a n d r o i d : s t a t e _ e n a b l e d = " t r u e " a n d r o i d : s t a t e _ p r e s s e d = " t r u e " > < s e t > < o b j e c t A n i m a t o r a n d r o i d : d u r a t i o n = " @ a n d r o i d : i n t e g e r / c o n f i g _ s h o r t A n i m T i m e " a n d r o i d : a n d r o i d : v a l u e T o = " @ d i m e n / f a b _ p r e s s _ t r a n s l a t i o n _ z " / > < / s e t > < / i t e m > < i t e m > < s e t > < o b j e c t A n i m a t o r a n d r o i d : d u r a t i o n = " @ a n d r o i d : i n t e g e r / c o n f i g _ s h o r t A n i m T i m e " a n d r o i d : a n d r o i d : v a l u e T o = " 0 " / > < / s e t > < / i t e m >
a l u e F r o m を指定すれば、動く < i t e m a n d r o i d : s t a t e _ e n a b l e d = " t r u e " a n d r o i d : s t a t e _ p r e s s e d = " t r u e " > < s e t > < o b j e c t A n i m a t o r a n d r o i d : d u r a t i o n = " @ a n d r o i d : i n t e g e r / c o n f i g _ s h o r t A n i m T i m e " a n d r o i d : a n d r o i d : v a l u e F r o m = " 0 " a n d r o i d : v a l u e T o = " @ d i m e n / f a b _ p r e s s _ t r a n s l a t i < / s e t > < / i t e m > < i t e m > < s e t > < o b j e c t A n i m a t o r a n d r o i d : d u r a t i o n = " @ a n d r o i d : i n t e g e r / c o n f i g _ s h o r t A n i m T i m e " a n d r o i d : a n d r o i d : v a l u e F r o m = " @ d i m e n / f a b _ p r e s s _ t r a n s l a t i o n _ z " a n d r o i d : v a l u e T < / s e t > < / i t e m > ( より) Note: There is a known issue in the L Developer Preview release that requires valueFrom values to be provided in StateListAnimator animations to get the correct behavior. http://developer.android.com/preview/material/animations.html#viewstate
i n t プロパティで画像の着色ができる I/Oアプリでは、スケジュール追加ボタンに使用している img/ic_plus_anim_030.png 着色した結果 < t r a n s i t i o n a n d r o i d : f r o m i d = " @ + i d / s t a t e _ o n " a n d r o i d : t o i d = " @ + i d / s t a t e _ o f f " > < a n i m a t i o n - l i s t > < i t e m a n d r o i d : d u r a t i o n = " 1 6 " > < b i t m a p a n d r o i d : s r c = " @ d r a w a b l e / i c _ p l u s _ a n i m _ 0 0 0 " a n d r o i d : t i n t = " # f f f " > < / b i t m a p > < / i t e m > . . . < / a n i m a t i o n - l i s t > < / t r a n s i t i o n >
プロパティが指定されている と、/ a n d r o i d / s r c / l p r e v i e w 以下のソースコードが組込ま れる l p r e v i e w = h a s P r o p e r t y ( ' l p r e v i e w ' ) . . . a n d r o i d { c o m p i l e S d k V e r s i o n l p r e v i e w ? " a n d r o i d - L " : 1 9 b u i l d T o o l s V e r s i o n " 2 0 . 0 . 0 " p r o d u c t F l a v o r s { l p r e v i e w ? l p r e v i e w { } : c l a s s i c { } } これによって、L P r e v i e w U t i l s の実装を L P r e v i e w U t i l s B a s e (通常版)と L P r e v i e w U t i l s I m p l (L Preview版)で切り替えている。