Ich habe eine scrollbare GridView, in der die Objekte einen angemessenen Abstand zwischen ihnen haben. Für einige der Objekte im Raster möchte ich Pfeilbilder hinzufügen, die von einem zum anderen führen.
Als Hinweis darauf, was ich meine, denke an die Talentbäume von World of Warcraft ( Ссылка ). Du wirst sehen, dass einige der Talente Pfeile von einem Gegenstand zum nächsten führen.
Das Layout, mit dem ich es zu tun habe, enthält nur eine Gridview in einem Framelayout, sonst nichts
%Vor%Ich versuche, diese ImageViews im Code hinzuzufügen, da ich nicht glaube, dass ich diese Logik in den Adapter für das GridView einfügen kann.
Ich habe versucht, sie als Kinder des übergeordneten FrameLayouts hinzuzufügen, basierend auf den x- und y-Koordinaten der GridView-Elemente, und das funktioniert, aber beim Scrollen der GridView scrollt der Pfeil nicht auch
Ich habe auch versucht, sie direkt als untergeordnete Elemente der GridView hinzuzufügen, aber dieses Verhalten wird nicht unterstützt (es wird java.lang.UnsupportedOperationException ausgelöst)
Gibt es Ideen, wie ich diese Bildansichten zwischen den Gridview-Elementen hinzufügen könnte?
Das klingt sehr ähnlich wie bei Romain Guys App "Regale", wo eine benutzerdefinierte GridView
verwendet wird und das Hintergrundbild eines Bücherregals scrollt. Sehen Sie sich das Projekt hier an. Die Quelle für die benutzerdefinierte GridView kann in der Datei ShelvesView.java
im Quellcode gefunden werden. Ein schnelles Intro von Guy Romain ist hier ;
Für die Pfeile sollten Sie einen 9-Patch-Zeichensatz in Betracht ziehen.
Ich habe den obigen Ansatz ein wenig genauer untersucht und habe eine Beispiel-App basierend darauf entwickelt Google Hallo GridView-Beispiel .
Mit dieser Beispiel-App habe ich ein benutzerdefiniertes GridView (DogsGridView.java) erstellt und die Fotos über leere Zellen verbunden, ähnlich wie in Ihrem Beispiel von World of Warcraft-Talentbäumen. Ich benutze nur einfache Linien, aber die Klasse kann geändert werden, um Zellen mit Pfeilen oder einer anderen Grafik zu verbinden.
Hier ist ein schnelles Video mit Verbindungslinien. Hier ist ein weiteres mit 9-Pfeilen.
Die Projektquelle finden Sie hier .