1

我想在每张图片下方添加一个文本,这是我的实际代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);



    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    //imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    imageView.setLayoutParams(new GridView.LayoutParams(
            grid.getWidth()/2,  grid.getHeight()/3));

    return imageView;
}
4

2 回答 2

1

试试这个,创建这样的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
       <ImageView
        android:id="@+id/child_Img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/photos_grid_bg"
        android:contentDescription="@string/app_name" />
     <TextView
        android:id="@+id/title_Txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:singleLine="true"
        android:text=""
        android:textColor="@color/white"
        android:textSize="12sp" />
</LinearLayout>

像这样膨胀你的布局

  @Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    final ViewHolder mHolder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.photos_grid_item, null);
        mHolder = new ViewHolder();

        mHolder.Img = (ImageView) convertView
                .findViewById(R.id.Img);
        mHolder.title_Txt = (TextView) convertView
                .findViewById(R.id.title_Txt);
        convertView.setTag(mHolder);

    } else {
        mHolder = (ViewHolder) convertView.getTag();
    }

    try {
        mHolder.Img.setImageResource(mThumbIds[position]);
                    mHolder.title_Txt.setText("Set your text here");
    } catch (Exception e) {
        // TODO: handle exception
    }
    return convertView;
}

private class ViewHolder {
    private ImageView Img;
    private TextView title_Txt;
}
于 2014-05-13T12:37:03.820 回答
1
LinearLayout layout = new LinearLayout(mContext);

        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
        layout.setOrientation(LinearLayout.VERTICAL);
        mageView imageView = new ImageView(mContext);



        imageView.setImageResource(mThumbIds[position]);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        //imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
        imageView.setLayoutParams(new LinearLayout.LayoutParams(
                grid.getWidth()/2,  grid.getHeight()/3));
        layout.addView(imageView);

        TextView tv = new TextView(mContext);
        tv.setLayoutParams(new LinearLayout.LayoutParams(
                grid.getWidth()/2,  grid.getHeight()/3));
        tv.setText("hello");
        layout.addView(tv);
        return layout;

试试这个,你可以稍后根据你的设计调整视图的大小

于 2014-05-13T12:38:19.533 回答