2015-01-08 70 views
0

我在android中很新,需要一些帮助完成此任务。GridView与图像和文字

我有gridview女巫从数据库中拉出图像和文本并显示它们。目前显示为图像,图像右侧为文本。我想在图像下面创建文本。你能帮我完成这项任务吗?这是gridview.xml

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.1" > 

    <GridView 
     android:id="@+id/gridView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:horizontalSpacing="5dp" 
     android:verticalSpacing="5dp" 
     android:numColumns="2" > 

    </GridView>    
</LinearLayout> 

这就是我如何显示图像和文字在它table_column.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/bckimageviw" 
> 
<ImageView 
    android:id="@+id/ColPhoto" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 

/> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

     <TextView android:id="@+id/ColName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" 
      android:text="Name" 
     /> 
</LinearLayout> 
</LinearLayout> 

如果需要getView()

 public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     LayoutInflater inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 


     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.table_column, null); 
     } 

     // ColPhoto 
     ImageView imageView = (ImageView) convertView.findViewById(R.id.ColPhoto); 
     imageView.getLayoutParams().height = 80; 
     imageView.getLayoutParams().width = 80; 
     imageView.setPadding(10, 10, 10, 10); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     try 
     { 
      imageView.setImageBitmap((Bitmap)MyArr.get(position).get("ImageThumBitmap")); 
     } catch (Exception e) { 
      // When Error 
      imageView.setImageResource(android.R.drawable.ic_menu_report_image); 
     } 
     // ColName 
     TextView txtName = (TextView) convertView.findViewById(R.id.ColName); 
     txtName.setPadding(5, 0, 0, 0); 
     txtName.setText("" + MyArr.get(position).get("name").toString());  

     return convertView; 
    } 
+2

在table_column.xml你的主要的LinearLayout,设置方向垂直) – Tr4X

+1

通过你不需要在你的table_column.xml第二的LinearLayout的方式,你可以把你的TextView根的LinearLayout – Tr4X

回答

1

u可以使用相对布局,并设置对齐textviewimageview

enter image description here

尝试。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#ff0000" 
    android:gravity="center" > 

    <ImageView 
     android:id="@+id/ColPhoto" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/ColName" 
     android:layout_alignRight="@+id/ColName" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/ColName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/ColPhoto" 
     android:gravity="center" 
     android:text="Name name" /> 

</RelativeLayout> 
+0

但文字是上面的图像不在 –

+0

你的意思是低于图像? –

+0

是的,我试图把文字放在图像下面 –

0

尝试改变你的方向为“垂直”。

编辑

一样,Tr4X说你不需要第二LinearLayout。你可以把两者合而为一。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/bckimageviw" > 
<ImageView 
    android:id="@+id/ColPhoto" 
    android:layout_width="0dp" 
    android:layout_height="0dp"/> 

<TextView 
    android:id="@+id/ColName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Name" /> 
</LinearLayout> 
1

我不知道为什么要在另一个LinearLayout中添加单个元素LinearLayout。 如果网格项需要放在正确的位置,我想使用RelativeLayout来代替。 `

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <ImageView 
     android:id="@+id/ColPhoto" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     /> 
    <TextView android:id="@+id/ColName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/ColPhoto" 
     android:text="Name" 
     /> 
</RelativeLayout> 

`