Ist es möglich, eine Gridview zu erstellen, die anstelle eines Gitters von Bildern ein Raster von Bildern mit einem kleinen Bildknopf unter jedem von ihnen hat?Gridview mit Layout (imageview + imagebutton) für jeden Wert
Antwort
Kurze Antwort: Ja. Sie können eine ImageView
und eine ImageButton
in einer GridView
haben.
Lange Antwort:
Sie werden natürlich eine benutzerdefinierte GridView
zu diesem Zweck erstellen müssen.
Zum Beispiel:
eine XML erstellen, die den Behälter halten GridView
, sagen wir, grid.xml
:
<GridView
android:id="@+id/gridFriends"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="true"
android:columnWidth="100dp"
android:fastScrollEnabled="true"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth" >
</GridView>
Und den Inhalt der GridView
, erstellen Sie eine andere XML-Layout zu definieren, die das halten ImageView
und die ImageButton
. Sprich, grid_items.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<FrameLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center" >
<ImageView
android:id="@+id/imgProfilePicture"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@null" />
<ImageButton
android:id="@+id/imgbtnDemo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:background="@null"
android:gravity="center"
android:src="@drawable/ic_contact_picture" >
</ImageButton>
</FrameLayout>
</RelativeLayout>
Schließlich, wenn Sie mit dem Konzept der benutzerdefinierten ListViews
, mit einigen Änderungen vertraut sind, werden Sie in der Lage sein, einen benutzerdefinierten GridView
zu implementieren. Wenn Sie mit der benutzerdefinierten Methode ListViews
oder GridViews
nicht vertraut sind, folgen Sie dieser Anleitung, um zu erfahren, wie Sie eine benutzerdefinierte GridView
: http://www.coderzheaven.com/2012/02/29/custom-gridview-in-android-a-simple-example/ erstellen können. Oder verwenden Sie diese Google Search für weitere Tutorials auf dem gleichen.
Ein wichtiger Punkt hier wäre, wenn Sie die ImageButton's
brauchen eine Funktion zu tun, wenn sie angeklickt wird, wird die onClickListener
müssen Setup im Adapter
sein.
GridView
zeigt ein Raster von Views
. Es kann alles anzeigen, was View
Klasse erweitert. Es kann ein LinearLayout
mit einem ImageView
und einem ImageButton
darin zeigen.
Danke, diese Seite: http://www.coderzheaven.com/2012/02/29/custom-gridview-in-android-a-simple-example/ + die Xmls, die du mir gabst, halfen mir sehr dabei meine benutzerdefinierte Gridview. Sehr gute Antwort –
@rosualin: Gern geschehen. Ich bin froh, dass ich geholfen habe. :-) –
Wie kann ich das relative Layout in den grid_items aufblasen? Ich bekomme diese Ausnahme: java.lang.ClassCastException: android.widget.FrameLayout $ LayoutParams kann nicht in android.widget.AbsListView $ LayoutParams – Pria