如何在gridlayout中的每个图像下添加TextView?

时间:2012-06-12 17:33:10

标签: android gridview

我需要在每张图片下显示图片说明,但是我收到错误,我无法将GridView投放到TextView

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <GridView 
        android:id="@+id/main_gridview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="2"
        android:padding="10dp"
        android:verticalSpacing="30dp" />

    <TextView
        android:id="@+id/tvIconDesc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15sp" />
</LinearLayout>

代码:

public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        TextView textView; 
        if (convertView == null) { 
            textView = new TextView(mContext);
            imageView = new ImageView(mContext);
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
          //imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
        } else {
            imageView = (ImageView) convertView;
            textView = (TextView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        textView.setText(thumbDesc[position]);
        return imageView;
    }

1 个答案:

答案 0 :(得分:1)

convertView将成为您的父View,在本例中是GridView。这就是为什么你得到无法转换错误。您正在尝试将其强制转换为ImageView(以及TextView)。

您应该将ImageView和TextView放在cell.xml布局文件中。然后在getView()调用期间膨胀并填充该xml文件,而不是为网格中的每个单元格创建TextView / ImageView的新实例。

Here is a tutorial涵盖了这些主题。他甚至使用了您的具体示例(每个单元格中的文本和图像)。完成本教程后,您只需稍微修改一下即可将文本放在图像下方(如果您希望它出现的话)。