1

我无法在列表视图中对齐 imageview 下面的文本。下面是我的代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"     >

    <ImageView 
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="50dp" />


    <TextView 
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/icon"
            android:layout_alignParentBottom="true"  
            android:gravity="center"
            android:singleLine="true"
            android:layout_marginLeft="20dp"
            android:textColor="@color/white"/>


</RelativeLayout>

和 ListView 是

<ListView    android:id="@+id/grid_view"
            android:layout_width="wrap_content"
            android:layout_height="280sp"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="20dp"
            android:layout_toLeftOf="@+id/imgView"
            android:scrollbars="none"
            android:divider="@null"
            android:gravity="center" >
</ListView>

java代码从数组中动态添加文本和图像

@Override
    public View getView(int position, View convertView, ViewGroup parent) {         
        ViewHolder holder;
        if (convertView == null) {
            convertView = l_Inflater.inflate(R.layout.gridview_layout, null);
            holder = new ViewHolder();
            holder.imageName = (TextView) convertView.findViewById(R.id.name);
            holder.image = (ImageView) convertView.findViewById(R.id.icon);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }


        holder.imageName.setText(name[position]);
        holder.image.setImageResource(mThumbIds[position]);

        return convertView;
    }

没有得到如何在 imageview 下方居中文本。请帮我解决这个问题。

4

3 回答 3

5

只需layout_centerHorizontal在 TextView 中使用该属性:

<TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/icon"
        android:layout_alignParentBottom="true"  
        android:layout_centerHorizontal="true"
        android:singleLine="true"
        android:textColor="@color/white" />
于 2012-10-10T17:36:09.517 回答
0

在文本视图中更改

android:layout_width="wrap_content" 

android:layout_width="match_parent"
于 2012-10-10T17:33:45.943 回答
0

您应该使用线性布局来设置方向属性。将线性布局的方向设置为垂直并设置 imageview 属性android:layout_gravity="center" 这是完整的代码:

<?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:orientation="vertical"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:layout_marginBottom="@dimen/activity_horizontal_margin"
         >

        <ImageView
            android:id="@+id/grid_item_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_gravity="center"
            android:src="@drawable/home" >
        </ImageView>

        <TextView
            android:id="@+id/grid_item_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cardiology"
            android:layout_gravity="center"
            android:layout_marginTop="5px"
            android:textSize="20sp" >
        </TextView>

    </LinearLayout>

希望它会有所帮助

于 2016-10-19T06:17:23.673 回答