我想在中心对齐GridView
我仍然是这样的:
正如你在上面的图片中看到的那样,我在左侧看到图像,但我想在中心显示图像,如下所示:
获得额外宽度的文本背景的另一件事我如何才能在图像中显示文本背景
现在gridview位于中心位置,但仍然存在问题,请参阅图像视图中的文本背景巨大宽度:
请检查更新的xml脚本
activity_main.xml中: -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/header_bg"
android:gravity="center"
android:text="@string/header_main"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
>
<GridView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:columnWidth="@dimen/photo_size"
android:horizontalSpacing="@dimen/photo_spacing"
android:numColumns="4"
android:gravity="center"
android:padding="4dp"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:layout_gravity="center"
android:verticalSpacing="@dimen/photo_spacing" />
</LinearLayout>
</RelativeLayout>
row.xml: -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/album_item"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/cover"
android:contentDescription="@string/app_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="center" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:layout_alignBottom="@+id/cover"
android:background="#70000000"
android:gravity="center"
android:padding="6dp"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
如果我使用 TextView 作为wrap_content
,那么就这样:
答案 0 :(得分:2)
您只需要使用android:layout_gravity="center"
作为其LinearLayout的子项。
首先,将父LinearLayout的宽度更改为match_parent
。
现在作为wrap_content
,在中心对齐
将GridView对齐到中心位置:
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/textView2"
android:orientation="horizontal"
>
<GridView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:columnWidth="@dimen/photo_size"
android:horizontalSpacing="@dimen/photo_spacing"
android:numColumns="auto_fit"
android:padding="4dp"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:layout_gravity="center"
android:verticalSpacing="@dimen/photo_spacing" />
</LinearLayout>
用于在中心对齐文字:
试试这个:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cover"
android:gravity="center"
android:background="#70000000"
android:padding="6dp" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp"
android:layout_gravity="center"
android:textStyle="bold" />
</LinearLayout>
希望它有所帮助。
<强>更新强>
要将标题对齐到中心,只需修改重力即可。由于row.xml中的父布局是RelativeLayout,因此layout_gravity不会产生任何影响。使用centerInParent
。
示例:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/album_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:background="#eeeeee"
android:id="@+id/cover"
android:src="@drawable/ic_launcher"
android:layout_width="200dip"
android:layout_height="200dip"
android:contentDescription="@string/app_name"
android:scaleType="center" />
<TextView
android:id="@+id/title"
android:text="@string/iclauncher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cover"
android:background="#70000000"
android:ellipsize="end"
android:layout_centerInParent="true"
android:padding="6dp"
android:singleLine="true"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
我使用这个获取图像中心的标题:
您只需添加android:layout_centerInParent="true"
并删除gravity
即可。希望这会有所帮助。
答案 1 :(得分:1)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical" >
这将解决您的问题。
答案 2 :(得分:0)
对包含android:gravity="center"
的{{1}}小心LinearLayout
,以便在中心对齐文字:
TextView
并使您的Gridview与中心使用对齐:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cover"
android:gravity="center"
android:background="#70000000"
android:padding="6dp" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
</LinearLayout>
答案 3 :(得分:0)
使用此代码将您的图片设置在中央:
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="160dp"
android:scaleType="centerCrop"/>
之后,将Gridview
设置如下:
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="55sp"
android:background="#ffff"
android:clickable="true"
android:columnWidth="100dp"
android:drawSelectorOnTop="true"
android:focusable="true"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp"/>
此作品编码愉快...