Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cross App Drag and Drop
Search
funnelbit
March 30, 2016
Technology
0
690
Cross App Drag and Drop
funnelbit
March 30, 2016
Tweet
Share
More Decks by funnelbit
See All by funnelbit
Hatena Engineer Seminar #9
funnelbit
5
7.3k
droidkaigi-2017-renovation
funnelbit
10
11k
Dart
funnelbit
0
260
BottomBarAndSnackBar
funnelbit
0
500
Dagger2 Optional bindings
funnelbit
0
580
WearableRecyclerView
funnelbit
1
810
QucikSettingsTileAPI
funnelbit
0
360
Mobile Vision
funnelbit
0
460
AwarenessAPI
funnelbit
0
150
Other Decks in Technology
See All in Technology
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.1k
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
530
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
380
KotlinConf 2025_イベントレポート
sony
1
120
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
320
AI開発ツールCreateがAnythingになったよ
tendasato
0
120
S3アクセス制御の設計ポイント
tommy0124
3
190
Featured
See All Featured
Scaling GitHub
holman
463
140k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rails Girls Zürich Keynote
gr2m
95
14k
KATA
mclloyd
32
14k
Writing Fast Ruby
sferik
628
62k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Making Projects Easy
brettharned
117
6.4k
Become a Pro
speakerdeck
PRO
29
5.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Transcript
$SPTT"QQ%SBH "OE%SPQ JEGVOOFMCJU
ࣗݾհ w ଜɹྋ w ͯͳJEGVOOFMCJU w 5XJUUFSJEFYQFSPQFSP
None
"OESPJE ͯͳϒοΫϚʔΫ
"OESPJE/1SFWJFX ग़·ͨ͠Ͷ
.VMUJ8JOEPX4VQQPSU
ΞϓϦؒͷ %SBHˍ%SPQΛαϙʔτ w 7JFXΫϥε͕֦ு͞Εαϙʔτ͞Εͨ w ҟͳΔ8JOEPXؒΛ%SBHˍ%SPQͰ͖Δ w ͨͱ͑ͦΕ͕ผΞϓϦͰ͋ͬͯ
ΞϓϦؒͷ %SBHˍ%SPQΛαϙʔτ w ͍ํ͜Ε·Ͱͷ%SBHˍ%SPQͱ͋Μ·ΓมΘ Βͳ͍ w Χॴ৽͍͠ϞϊΛ͏
TUBSU%SBH"OE%SPQ w ESBHˍESPQͷૢ࡞͕։࢝͞ΕΔ w TUBSU%SBH ඇਪʹ textView.startDragAndDrop(clipData, new MyDragShadowBuilder(view), null,
View.DRAG_FLAG_GLOBAL);
DBODFM%SBH"OE%SPQ w %SBHΠϕϯτΛதஅͰ͖Δ w %SBHૢ࡞Λ։࢝ͨ͠ଆͷΈ͕ݺΔ textView.cancelDragAndDrop();
VQEBUF%SBH4IBEPX w %SBHதͷӨΛஔ͖͑Δ͜ͱ͕ग़དྷΔ w %SBHૢ࡞Λ։࢝ͨ͠ଆͷΈ͕ݺΔ textView.updateDragShadow( new MyDragShadowBuilder(view));
%3"(@'-"(@(-0#"- w 8JOEPXΛ͑ͯͷ%SBHΛࢦఆ͢Δͱ͖ʹ͏ View.DRAG_FLAG_GLOBAL; View.DRAG_FLAG_GLOBAL_URI_READ; View.DRAG_FLAG_GLOBAL_URI_WRITE; …
w BOESPJEWJFX%SPQ1FSNJTTJPOT w SFRVFTU%SPQ1FSNJTTJPOT %SPQ1FSNJTTJPOT
ૹΔଆ ClipData.Item item = new ClipData.Item("ςΩετ"); String[] mimeType =
new String[1]; mimeType[0] = ClipDescription.MIMETYPE_TEXT_PLANE; ClipData clipData = new ClipData( new ClipDescription("text", mimeType), item); textView.startDragAndDrop(clipData, new MyDragShadowBuilder(view), null, View.DRAG_FLAG_GLOBAL);
Β͏ଆ root.setOnDragListener(new View.OnDragListener() { @Override public boolean onDrag(View view, DragEvent
dragEvent) { if (dragEvent.getAction() == DragEvent.ACTION_DROP) { String item = dragEvent.getClipData().getItemAt(0).getUri(); Log.e("text", item.toString()); } return true; } });
σϞ
ॴײ w ؆୯ʹσʔλͤΕΔͷྑͦ͞͏ w ͨͩ͠.VMUJ8JOEPXͷ͍উखʹΑΔ w ߟ͑Δࣄ૿͑ͨ w Ͳͷ.*.&5:1&·ͰରԠ͢Δͷ͔ɺ͠ͳ͍߹Ͳ͏͢Δ ͷ͔
w %SBHதͷ6* w ͍ͭͰ%SBHΠϕϯτ͕ೖͬͯ͘Δͱҙࣝ͢Δ
͋Γ͕ͱ͏͍͟͝·͠ ͨ