带有图像和文本的GridView没有显示为我想要的

时间:2014-03-14 22:47:40

标签: android image gridview text

我的应用上有一个网格视图正在我的网页上填充,问题是我有图像和图像的名称,但文本显示在一侧,而不是在图片,我该怎样实现呢?

感谢。

这是我的代码:

public class ListViewAdapter2 extends BaseAdapter {

    // Declare Variables
    Context context;
    LayoutInflater inflater;
    ArrayList<HashMap<String, String>> data;
    ImageLoader imageLoader;
    HashMap<String, String> resultp = new HashMap<String, String>();
    String coment;
    public String img;
    public int imga;
    public ListViewAdapter2(Context context,
            ArrayList<HashMap<String, String>> arraylist) {
        this.context = context;
        data = arraylist;
        imageLoader = new ImageLoader(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public void addItems(ArrayList<HashMap<String, String>> arraylist) {
        if(data != null) {
             data.addAll(arraylist);  
        } else {
             data = arraylist;
        }
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        // Declare Variables

        final String enlace;

        View itemView = convertView;
        RecordHolder holder = null;

        LayoutInflater inflater = ((Activity) context).getLayoutInflater();

        itemView = inflater.inflate(R.layout.listview_item2, parent, false);
        // Get the position
        holder = new RecordHolder();
        resultp = data.get(position);

        // Locate the TextViews in listview_item.xml
        // Locate the ImageView in listview_item.xml
        holder.imagen = (ImageView) itemView.findViewById(R.id.snapshotcam);
        holder.nombrecam = (TextView) itemView.findViewById(R.id.nombrecam);
        itemView.setTag(holder);
        // Capture position and set results to the TextViews
        // Capture position and set results to the ImageView
        // Passes flag images URL into ImageLoader.class
        imageLoader.DisplayImage(resultp.get(MainActivity.IMAGEN), holder.imagen);
        holder.nombrecam.setText(resultp.get(MainActivity.NOMBRECAM));
        enlace = (resultp.get(MainActivity.ENLACE));
        holder.imagen.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    Intent i=new Intent(context,VideoPlayer.class);
                    i.putExtra("enlace", enlace);
                    context.startActivity(i);

                }
            });

        return itemView;
    }

    static class RecordHolder { 
        ImageView imagen;
        TextView nombrecam;
        }
}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">
<GridView 
    android:id="@+id/gridcams"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_margin="4dp"
   android:columnWidth="150dp"
   android:gravity="center"
   android:numColumns="auto_fit"
   android:stretchMode="columnWidth" >
</GridView>
</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/snapshotcam"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginRight="5dp">
    </ImageView>

    <TextView
        android:id="@+id/nombrecam"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:textSize="9sp" >
    </TextView>
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您忘记将商品布局方向更改为水平。试试这个改变

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/snapshotcam"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginRight="5dp">
    </ImageView>

    <TextView
        android:id="@+id/nombrecam"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:textSize="9sp" >
    </TextView>
</LinearLayout>