2017-05-28 30 views
8

Öğelerin arasında aralarında boş alan olması için kaydırılabilir bir GridView var. ızgarada nesnelerin bazıları için, ne demek istediğimi referans için diğerGridView'daki Öğeler Arasında Görünümler Ekleme

birinden diğerine açan ok görüntüleri eklemek istiyorum, World of Warcraft yetenek ağaçları (http://calculators.iradei.eu/talents/mage) düşünüyorum. Bazı yeteneklerin bir öğeden diğerine giden okları olduğunu göreceksiniz.

Sadece uğraşıyorum düzeni framelayout bir GRIDVIEW, başka bir şey

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <GridView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:numColumns="4" 
     android:scrollbars="none" 
     android:id="@+id/talent_tree_grid_view"> 
    </GridView> 

</FrameLayout> 

ben herhangi bir yolu yoktur sanmıyorum, koduna bu ImageViews eklemeye çalışıyorum içeriyor ben bu mantığı GridView için adaptöre ekleyebilir.

ben x ve GridView öğelerin y coords dayanan ebeveyn FrameLayout, çocukları olarak ekleyerek denedim

ve bu çalışır, ancak GridView kaydırma yaparken, oklar da

I kaydırma yok Ayrıca bunları doğrudan GridView'ın çocukları olarak eklemeyi denediler, ancak bu davranışı desteklemiyor (java.lang.UnsupportedOperationException'ı atar)

Bu görüntü görünümlerini ızgara görünümü öğeleri arasında nasıl ekleyebileceğime dair herhangi bir fikir var mı?

+0

GridLayout öğelerini genişletmek ve kendi çiziminizi eklemek isteyebilirsiniz – F43nd1r

+0

Yapacağınız tek şey, ok görüntüsünü gridview öğenize ekleyebilir ve belirli koşullar sağlandığında bunları gösterebilirim ancak bu çok uygun olmaz. –

+0

Bir demo projesi eklemek için cevabımı güncelledim. – Cheticamp

cevap

5

Bu, Romain Guy'nin "Raflar" uygulamasına çok benziyor ve özel bir GridView kullanılıyor ve kitaplıkların arka plan resmi kaydırılıyor. here numaralı projeye bir göz atın. Özel GridView kaynağı, kaynak kodunda ShelvesView.java dosyasında bulunabilir. Guy Romain'den hızlı bir tanıtım here;

Oklar için, 9-patch drawable'u düşünebilirsiniz.


biraz daha yukarıda bir yaklaşım incelenmiş ve Google'ın Hello GridView example dayalı örnek bir uygulamaya sahip olması.

Bu örnek uygulamayla, GridView (DogsGridView.java) adlı bir özel video hazırladım ve fotoğrafları World of Warcraft yetenek ağaçlarına benzeyen boş hücreler arasında bağladım. Sadece basit çizgiler kullanıyorum, ancak sınıfları oklarla veya başka bir grafikle birleştirmek için sınıf değiştirilebilir.

Bağlantı hatlarına sahip bir quick video. İşte 9 yama okları ile another.

Proje kaynağı here bulunabilir.

+0

Cevabınız için teşekkürler Cheticamp! Çalıştı, ancak performans sorunları vardı, kaydırma okları sürekli yeniden çizilirken, kaydırma yaparken bence? Kılavuz görünüm öğeleri içinde okların parçalarını çizmeyi içeren bir çözümün uygulanmasına son verebilirim (benim durumumda çerçeve düzenleridir). Böylece, okun kaynaklandığı öge, okun ilk parçasına sahip olacak, aralarındaki boş ızgara boşlukları orta bölümlere sahip olacak ve okun bittiği son ızgara kalemi, okun bitiş noktasına sahip olacaktır. Düzgün çalıştığı takdirde bu cevabı buraya göndereceğim. – Dportology

+0

@Dportology Kaynağını ne zaman çektiğinizi bilmiyorum, ancak dün kontrol muayenesinden çıkıp "dispathDraw" oyununa bir çağrı yaparak dün performans geliştirmeleri yaptım. Bundan sonra emülatörümde önemli bir gelişme gördüm. Grafiği ayırmak ve ızgara görünümü öğelerinin içine koymak yerine, maksimum grafiğin bir zamanını "GridView" içinde bir kez çizmeyi ve gerektiğinde kırpmayı ve kopyalamayı düşünebilirsiniz. – Cheticamp

+0

@Dportology Oklar, döngü yaptığımdan dolayı defalarca çiziliyordu. Aramaları satırlar yerine sütunları takip edecek şekilde değiştirdim, bu yüzden daha iyi performans göstermesi gerekiyor. Her görünür pozisyon sadece bir kez düşünülmelidir. GitHub güncellemelere sahip. – Cheticamp

İlgili konular