Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
MDCのButtonのCorner Family
HiroYUKI Seto
February 08, 2019
Technology
1
120
MDCのButtonのCorner Family
2019/2/8
null
HiroYUKI Seto
February 08, 2019
Tweet
Share
More Decks by HiroYUKI Seto
See All by HiroYUKI Seto
Androidアプリの 安全なリファクタリングを行うパターン集
seto_hi
1
4.5k
UI TestやVisual Regression Testを コスパ良くやる
seto_hi
3
1.4k
事業支援というお仕事
seto_hi
0
300
MDCの内部実装から学ぶ 表現力の高いViewの作り方
seto_hi
5
1.4k
CoordinatorLayoutのBehaviorを使い倒す
seto_hi
1
220
Jetpack Compose
seto_hi
2
510
UI改善に繋がるエンジニアの立ち回り
seto_hi
2
3.8k
MDCのBottomAppBarのShadowの実現方法
seto_hi
0
680
Kyashは なぜ使いやすいのか
seto_hi
1
2k
Other Decks in Technology
See All in Technology
【toranoana.deno#7】Denoからwasmを呼び出す基礎
toranoana
0
120
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
440
How to start with DDD when you have a Monolith
javujavichi
0
300
紙にまつわる苦しみを機能化してきた カミナシの歴史
kaminashi
0
1.1k
サイボウズの アジャイル・クオリティ / Agile Quality at Cybozu
cybozuinsideout
PRO
4
2.3k
データエンジニアリングの潮流を俯瞰する
tetsuroito
1
730
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.2k
eBPF for Security Observability
lizrice
0
160
Build 2022で発表されたWindowsアプリ開発のあれこれ振り返ろう
hatsunea
1
380
誰が正解を知っているのか / Who knows the right answer
takaking22
1
240
LINEのB2Bプラットフォームにおけるトラブルシューティング2選
line_developers
PRO
3
300
#JP_Stripes Sapporo Stripeの活用例を色々ご紹介します!
miu_crescent
0
110
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
Six Lessons from altMBA
skipperchong
14
1.4k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Code Reviewing Like a Champion
maltzj
506
37k
Why Our Code Smells
bkeepers
PRO
324
55k
Raft: Consensus for Rubyists
vanstee
126
5.4k
Designing on Purpose - Digital PM Summit 2013
jponch
106
5.6k
Building Flexible Design Systems
yeseniaperezcruz
310
34k
How To Stay Up To Date on Web Technology
chriscoyier
780
250k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Docker and Python
trallard
27
1.6k
Navigating Team Friction
lara
175
11k
Transcript
גࣜձࣾϊϋφɹށ༏೭ .%$ͷ#VUUPOͷ $PSOFS'BNJMZ
ށ༏೭ˏTFUP@IJ גࣜձࣾϊϋφ ΞϓϦΤϯδχΞɺ ϦαʔνɺࢪࡦɺσβΠϯ
None
.BUFSJBM%FTJHO$PNQPOFOUT
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="0dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="4dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="18dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="30dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="60dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="70dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="80dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius="90dp"
#VUUPO • app:shapeAppearance= "@style/ShapeAppearanceOverlay.Cut" • app:cornerRadius=“100dp"
෦࣮
ొਓ • MaterialShapeDrawable • Buttonͷഎܠɺ͍͕ͭ͜ݪҼ • ShapeAppearanceModel • ݟͨΛ࢘ΔϚϯɺ֯ลͷShapePathΛ࡞Δ •
ShapePath • ͲΜͳݟ͔ͨͷΫϥε • ShapeAppearancePathProvider • ShapeAppearanceModelΛPathʹม͢ΔϚϯ
എܠͷඳը MaterialShapeDrawable.draw MaterialShapeDrawable.drawFillShape → MaterialShapeDrawable.drawShape → Canvas.drawRoundRect/Canvas.drawPath CutdrawPath
എܠͷ1BUIͷ࡞ MaterialShapeDrawable.draw MaterialShapeDrawable.calculatePath → MSD.calculatePathForSize → ShapeAppearancePathProvider.calculatePath → ShapeAppearancePathProvider.calculatePath
4IBQF"QQFBSBODF1BUI1SPWJEFSDBMDVMBUF1BUI • setCornerPathAndTransform / setEdgePathAndTransform → ShapePathΛ࡞ • appendCornerPath /appendEdgePath
→ ShapePathΛPathʹม ɹ→ ShapePath.applyToPath ɹɹ→ PathOperation.applyToPath
DPSOFS3BEJVTlEQ
DPSOFS3BEJVTEQ
DPSOFS3BEJVTEQ
$PSOFS'BNJMZ306/%&%
$PSOFS'BNJMZ306/%&% • app:cornerRadius="100dp"
$PSOFS'BNJMZ306/%&% • app:cornerRadius="100dp"
എܠͷඳը MaterialShapeDrawable.draw MaterialShapeDrawable.drawFillShape → MaterialShapeDrawable.drawShape → Canvas.drawRoundRect/Canvas.drawPath
$PSOFS'BNJMZ306/%&% • app:cornerRadius="100dp"
·ͱΊ w $VUͰϦϘϯܕʹͳΔͷҙਤ͍ͯ͠Δ͔ w ˠڪΒ͘ҙਤ͍ͯ͠ͳ͍ w എܠͷඳը w 3PVOEFEˠ3PVOE3FDU
w $VUˠ1BUIΛඳը w 1BUIͷมφΠʔϒ
None