Ich möchte ein HorizontalScrollView
erstellen, aber mit einigen "Effekten", wie diesem Beispiel oder dieses andere Beispiel . Die Sache ist, dass ich nicht weiß, wie viele Gegenstände ich benutzen muss; Ich bekomme das ImageView
von einer API, also sollte es dynamisch sein. Wie kann ich diesen Effekt erzielen, wenn er ausgewählt wird, wird er größer mit dem TextView
darunter? Das nächste Beispiel, das ich auf SO gefunden habe, ist hier . Das ist genau das, was ich brauche, aber ich habe die Antwort getestet und es funktioniert nicht für mich ... aber das Bild von der Frage ist genau das, was ich will. Kann mich jemand dazu führen?
Nehmen wir an, ich teste es mit 5 ImageView
NUR FÜR TESTEN , also wäre ein Beispiel, wie diese ImageView
dynamisch hinzugefügt werden, auch für mich gut.
Ein anderes Beispiel wäre Snapchat APP , aber der Unterschied ist, dass ich einen Effekt hinzufügen möchte wie make es ist größer oder so.
Ich möchte ein Beispiel dafür bekommen, wie man ein benutzerdefiniertes HorizontalScrollView mit einem Layout (Adapter) macht und das Wichtigste, wenn es möglich ist, dem angeklickten einen Effekt hinzuzufügen, und ich möchte den Adapter, weil ich es brauchen werde bekomme den Gegenstand natürlich geklickt. Die Sache, von der ich denke, dass ich RecycleView als @UncaughtException verwenden sollte, sagte mir, weil ich nicht weiß, wie viele Bilder ich bekommen werde und ich muss meine APP aufsetzen, also denke ich, das ist die Lösung.
>Es wäre eine Mischung zwischen Snapchat HoritzontalScrollView und Dieses Bild aus einer SO-Frage
Schritt 1:
Zeigen Sie die Bilder horizontal in einem ViewPager
an.
Schritt 2:
Wenden Sie die ScaleAnimation
Klasse auf das angeklickte Objekt an, um es zu vergrößern . Dies kann in der Methode instantiateItem()
der ViewPager
s PagerAdapter
erfolgen.
Außerdem gibt es einige gebrauchsfertige Open-Source-Widgets wie CoverFlow
und FancyCoverFlow
. Sie können den Quellcode überprüfen, um zu sehen, wie sie funktionieren.
BEARBEITEN:
Zunächst sollten Sie sich bei der Frage, wie Sie mit einer unbekannten Anzahl von Bildern umgehen, bewusst machen, dass in allen Widgets ( ListView
, GridView
, ViewPager
usw.) die Anzahl der Objekte von der API abhängt ist zunächst immer unbekannt, dh es wird bekannt, wann die API-Antwort eingeht. Wenn Sie also zum ersten Mal ViewPager
auf normale Weise implementieren, werden Sie sehen, wie dies gehandhabt wird. Grundsätzlich müssen Sie ein Adapter
und ein Modellobjekt verwenden, um die ViewPager
oder ListView
zu füllen. Die API-Antwort wird entweder JSON oder XML sein, und nach der Analyse wissen Sie die genaue Anzahl der Elemente.
Ich denke, Sie sollten damit beginnen, zunächst ViewPager
auf normale Weise zu implementieren. Hierfür stehen zahlreiche Beispiele zur Verfügung. Zwei interessante sind dieser und dieser . Sie sind interessant für Ihren Fall, weil sie auch Beispielcode enthalten, wie man das Bild vergrößert.
Kommen wir nun zum zweiten Problem: Wie vergrößern wir das Bild? Eine Möglichkeit besteht darin, die Klasse ScaleAnimation
zu verwenden. Angenommen, Sie möchten ein Bild um 100% um sein Zentrum herum vergrößern:
Ich würde diesen Code für das Bild in der Methode instantiateItem()
von ViewPager
's PagerAdapter
verwenden. Das sollte funktionieren. Oder Sie können die Zoom-Animation in einem der beiden vorherigen Beispiele ausprobieren.
Ich fürchte, Sie müssen versuchen, anhand dieser Beispiele ein funktionierendes Projekt zu erstellen. Dann können wir weitere Probleme besprechen, denen Sie gegenüberstehen. Ich bin mir sicher, dass dies ganz einfach gemacht werden kann, und ich weiß, dass Sie es schaffen können. Am besten ...
EDIT 2:
Wie Sie anhand der beiden Beispiele, die Sie angegeben haben, dieses und dies ? Ist das wonach Sie suchen? Und bringt es Sie näher zur Lösung des Problems?
In deinem Fall kannst du definitiv ViewPager
verwenden, aber wenn ich du wäre, würde ich für RecyclerView
mit einem LinearLayoutManager
gehen und seine Ausrichtung auf Horizontal
setzen, also brauchst du kein HorizontalScrollView
, und mit RecyclerView
bekommst du auch das adapter
was du suchst ..
Nun, um scale
oder andere Effekte auf click
zu zeigen, um sie von anderen zu unterscheiden, können Sie Animate
auf diese bestimmte Ansicht,
Ich habe einen Demo-Code dafür geschrieben, hier die erforderlichen Dateien posten, lassen Sie mich wissen, ob Sie das wollen,
Aktivität
%Vor%Aktivitätslayout
%Vor%Adapter
%Vor%Adapterzeilenlayout
%Vor% Anders als Sie können auch TwoWayView
verwenden, das die Funktionalität zur Implementierung von HorizontalListView
,
Oben ist nur ein Demo-Code, der einige Verbesserungen erfordern kann, lassen Sie mich wissen, ob das hilft oder weiter fragt ...
Auch die Screenshots der Ausgabe hinzufügen ..
Tags und Links android android-imageview android-animation android-viewpager