Android Drag & Drop İşlemleri ve Mantığı

Merhaba Arkadaşlar bu yazıda Android ‘de Drag&Drop yani sürükle bırak mekanizmasından bahsedeceğim. Bu yazıda vogella’nın drag&drop ile ilgili yazısını referans aldım isteyen orjinal ingilizce metnine de bakabilir ; Bölüm başlıkları ;
  1. Android Drag ve Drop
    1. drag & drop kullanımı
    2. Bir nesneye drag özelliği kazandırma
    3. Taşıma Hedefi Belirleme
  2. Uygulama : Drag & Drop
    1. Proje oluşturma 
    2. XML Drawable oluşturma
    3. Activity ve Layout oluşturma
  •  

1. Android drag and drop

1.1. Android drag&drop kullanımı

 Android 4.0 versiyonu itibiriyle bir view objesini başka bir view objesine yada layoutlar üzerine taşınabilirsiniz.

1.2. Bir View nesnesine drag özelliği kazandırma

Bir nesneyi OnTouchListener veya LongClickListener kullanarak taşıyabilirsiniz. StartDrag() metodu ile taşıma işlemini başlatabilirsiniz. Aynı Zamanda ClipData  nesnesi kullanarak bırakacağınız yere bazı bilgiler de taşıyabilirsiniz.

Nesneyi taşırken bir gölge oluşturup onu da taşıyabilirsiniz böylece taşırken daha güzel bir görüntü elde edersiniz. Bunun için DragShadowBuilder nesnesi oluşturmanız gerekiyor.

onTouchListener kullanarak basit bir örnek yapalım. 

 

1.3. Taşıma Hedefi Belirleme

Yukarıda taşıyacağımız nesneyi onTouchListener() ‘ e ekledik. yada onLongClickListener()’ de olabilirdi. Şimdi taşıyacağımız hedef alanı da setOnDragListener() ‘a eklememiz gerekiyor. Bu listener ‘ın bazı ACTION’ları var . Yani olan olayları yakaladığı bazı olay isimleri.bunlar 
* DragEvent.ACTION_DRAG_STARTED
* DragEvent.ACTION_DRAG_ENTERED
* DragEvent.ACTION_DRAG_EXITED
* DragEvent.ACTION_DROP
* DragEvent.ACTION_DRAG_ENDED
bunlar görüldüğü gibi başlama , target hedefe girme, cıkma ,bırakılma ve bırakma işleminin bitimi gibi ifadeler.
 

 

2. Örnek: Drag and drop

Bu örnekte birkaç pencere arasında taşıma nasıl olur buna bakalım.

2.1. Create project

File  – New Project diyerek yeni bir Boş proje oluşturalım. 

2.2. Create XML Drawables

Bu uygulamada xml drawableler kullanacağız. 

Oluşturuduğumuz xml dosyasını buraya kaydedelim. ->  res/drawable .

shape.xml 

 

 shape_droptarget.xml .

 

 

2.3. Activity & layout

ConstraintLayout olarak gelir muhtemelen layoutunuz bunu GridLayout ‘a çevirelim.
 

Activity.java 

Uygulama Çalıştığında böyle bir ekran görüntüsü karşınıza gelecek ve kutular arası taşıma yapabileceksiniz. 

 

 
 

 

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir