如何在图像上显示文字

我写了一个代码,其中我在GridView中显示图像,但现在我想在每个图像的底部显示文本。

我想显示我的网格是这样的:

在这里输入图像说明

但是越来越像这样[也想显示文字的图像]:

在这里输入图像说明

main.xml中:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:verticalSpacing="0dp" android:horizontalSpacing="0dp" android:stretchMode="columnWidth" android:numColumns="2" /> </FrameLayout> 

Solutions Collecting From Web of "如何在图像上显示文字"

您需要定义一个包含文本视图的自定义网格项目布局来分配文本。

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/thumbnail" android:padding="8dp" android:scaleType="cropCenter" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:layout_gravity="bottom" android:textColor="@android:color/white" android:background="#55000000" /> </FrameLayout> 

在这里,我们创build了一个FrameLayout,其中的imageview设置为匹配父级的尺寸,这将是显示照片的图像视图。 接下来,有一个TextView将用于显示项目标题,并与FrameLayout的底部alignment。

接下来,我们需要编辑您的适配器以使用此网格项目布局并呈现正确的信息。

 public View getView(int position, View convertView, ViewGroup parent) { // Inflate the single grid item layout if (convertView == null) { convertView = mLayoutInflater.inflate(R.layout.grid_item, parent, false); } // Set Image ImageView thumbnail = convertView.findViewById(R.id.thumbnail); if (thumbnail != null) { thumbnail.setImageResource(mThumbIds[position]); } // Set Text TextView title = convertView.findViewById(R.id.title); if (title != null) { title.setText("Image Number: " + position); } return convertView; } 

mLayoutInflater应该在你的构造函数中使用全局定义

 mLayoutInflater = LayoutInflater.from(context);