2013-02-11 11 views

Odpowiedz

7

Krótka odpowiedź: Tak. Możesz mieć ImageView i ImageButton w GridView.

Długa odpowiedź:

Będziesz oczywiście musiał utworzyć niestandardowy GridView do tego celu.

Na przykład:

Tworzenie XML, które będą trzymać pojemnik GridView, powiedzmy, 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> 

I, aby określić zawartość GridView, tworzyć inny układ XML, który odbędzie się ImageView i ImageButton. Powiedzieć, 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> 

Wreszcie, jeśli są zaznajomieni z pojęciem zwyczaju ListViews, z kilkoma modyfikacjami, będzie można wdrożyć niestandardowe GridView też. Jeśli nie znasz Custom ListViews lub GridViews, wykonaj ten samouczek, aby dowiedzieć się, jak utworzyć niestandardowe GridView: http://www.coderzheaven.com/2012/02/29/custom-gridview-in-android-a-simple-example/. Lub użyj tego Google Search, aby uzyskać więcej samouczków na ten sam temat.

Ważnym punktem tutaj będzie, jeśli potrzebujesz ImageButton's zrobić funkcję, gdy są one kliknięty, onClickListener będą musiały być ustawione w Adapter.

+1

dziękuję, ta strona: http://www.coderzheaven.com/2012/02/29/custom-gridview-in-android-a-simple-example/ + xml, które mi dałeś, bardzo pomogło w robieniu mój niestandardowy widok siatki. Bardzo dobra odpowiedź: –

+0

@rosualin: Nie ma za co. Cieszę się, że pomogłem. :-) –

+0

Jak mogę nadmuchać względny układ w grid_items? Otrzymuję ten wyjątek: java.lang.ClassCastException: android.widget.FrameLayout $ LayoutParams nie można przesyłać do pliku android.widget.AbsListView $ LayoutParams – Pria

2

GridView przedstawia siatkę Views. Może pokazać wszystko, co rozszerza klasę View. Może zawierać LinearLayout z wewnątrz: ImageView i .

Powiązane problemy