在安卓系统中使用 BaseAdapter 的 GridView 示例
原文:https://www . geeksforgeeks . org/GridView-using-based adapter-in-Android-with-example/
这里,我们正在设计一个安卓应用程序来演示 GridView 布局的使用。GridView 布局是一个视图组,它是由行和列组成的二维滚动网格中的视图组。网格视图中的项目是使用列表适配器插入的。默认情况下,布局是可滚动的,我们不需要使用滚动视图。GridView 的一个例子是您的默认图库。
网格视图的属性
| 属性 | 描述 | | --- | --- | | 身份证明(identification) | 像所有其他视图一样,android 使用 id 元素来唯一标识一个元素。 | | numColumns | 要显示的列数。它可以是整数或自动拟合 将显示尽可能多的列来填充设备屏幕。如果他们没有指定这个属性,那么网格视图将表现得像一个列表视图。 | | 水平间距 | 水平间距属性用于定义默认水平列间距。这可以是像素(px)、密度像素(dp)或者比例无关像素(sp)。 | | 垂直空间 | 用于定义默认垂直间距的垂直间距属性行间。这应该是在 px,dp 或 sp。 |在安卓系统中使用不同适配器的 GridView 示例
适配器是用户界面组件(如文本视图、图像视图)和数据源之间的连接。适配器有助于用适当的数据填充用户界面元素。在 android 中,在 GridView 中填充数据的常用适配器有:
- 阵列适配器
- 基础适配器
- 自定义数组适配器
本教程将使用基本适配器,下面是扩展基本适配器的类的结构。
Java 语言(一种计算机语言,尤用于创建网站)
public class MyAdapter extends BaseAdapter
{
@Override public int getCount()
{
return 0;
}
@Override public Object getItem(int i)
{
return null;
}
@Override public long getItemId(int i)
{
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
return null;
}
}
方法描述:
- getCount(): 这个方法返回要显示的元素总数的计数。
- getItem(int i): 这个方法接受一个索引并返回一个对象。
- getItemId(int i): 这个方法接受一个索引,并返回在 GrIdView 中显示的项目的 id。
- getView(int I,View view,ViewGroup 组):这是返回网格视图中显示的视图的最重要的方法。int i 是索引,视图可以是(ImageView 或 TextView),视图组是承载视图的容器,例如线形布局、相对布局等。
例
下面给出了一个 GIF 示例,来了解一下在这篇文章中要做什么。注意,我们将使用 Java 语言来实现这个项目。
分步实施
第一步:创建新项目
要在安卓工作室创建新项目,请参考如何在安卓工作室创建/启动新项目。注意选择 Java 作为编程语言。
步骤 2:使用 activity_main.xml 文件
打开activity _ main . XML文件,并在其中插入一个 GridView 组件。布局最初看起来是空白的,但在运行时会被自定义适配器类填充。
下面是activity _ main . XML文件的代码。
可扩展标记语言
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ImageGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="auto_fit"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
步骤 3:创建新的布局 XML 文件
在与 activity_main.xml 文件相同的文件夹中创建一个名为 grid_layout.xml 的新文件。该自定义视图将包含一个图像视图。使用自定义适配器的主要原因是在 GridView 或 ListView 中显示复杂的视图,而不是一些简单的文本。自定义视图被命名为 grid_layout.xml ,其根是 LinearLayout 和一个简单的 ImageView。
下面是T2 文件的代码。
可扩展标记语言
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="center"
tools:srcCompat="@tools:sample/avatars" />
</LinearLayout>
步骤 4:创建自定义适配器类
将这个类命名为 MyBaseAdapter,它将扩展 BaseAdapter 类并继承上面显示的方法。我们需要遍历的主要方法是 getView 方法。
Java 语言(一种计算机语言,尤用于创建网站)
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
if (view == null)
{
LayoutInflater inflater = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.grid_layout, viewGroup);
}
ImageView imageView = view.findViewById(R.id.imageView);
imageView.setImageResource(items[i]);
return view;
}
版权属于:月萌API www.moonapi.com,转载请注明出处