Gridview с макетом (imageview + imagebutton) для каждого значения
Можно ли создать сетку, в которой вместо сетки картинок будет сетка картинок с маленькой кнопкой изображения под каждым из них?
2 ответа
Краткий ответ: да. Вы можете иметь ImageView
и ImageButton
в GridView
,
Длинный ответ:
Вам, естественно, придется создать кастом GridView
для этой цели.
Например:
Создайте XML, который будет содержать контейнер GridView
, сказать, 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>
И, чтобы определить содержание GridView
создайте другой макет XML, который будет содержать ImageView
и ImageButton
, Сказать, 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>
Наконец, если вы знакомы с концепцией обычая ListViews
, с несколькими изменениями, вы сможете реализовать кастом GridView
тоже. Если вы не знакомы с обычаем ListViews
или же GridViews
, следуйте этому руководству, чтобы увидеть, как создать пользовательский GridView
: http://www.coderzheaven.com/2012/02/29/custom-gridview-in-android-a-simple-example/. Или воспользуйтесь этим поиском Google, чтобы найти дополнительные учебники по этому же вопросу.
Важным моментом здесь будет, если вам нужно ImageButton's
чтобы сделать функцию, когда они нажаты, onClickListener
нужно будет настроить в Adapter
,
GridView
показывает сетку Views
, Это может показать все, что расширяет View
учебный класс. Это может показать LinearLayout
с ImageView
и ImageButton
внутри него.