图像视图以拉伸适合的表行宽

时间:2013-04-20 00:55:40

标签: android android-layout

我有这个布局XML,我希望第二行中的ImageView可以拉伸以适应行视图,如果可能的话,第一行中的textview卡在屏幕的左边,我需要它在中心。 ImageView正在填充从相机拍摄的图像,任何帮助表示赞赏。

<LinearLayout 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:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
>

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:stretchColumns="*" >

    <TableRow android:id="@+id/tableRow1" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_gravity="center"
                android:text="Set Your Personal Information Here"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </LinearLayout>
    </TableRow>

    <TableRow android:id="@+id/tableRow2" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
    </TableRow>

    <TableRow android:id="@+id/tableRow3" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <QuickContactBadge
                android:id="@+id/quickContactBadge1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Name"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Gender"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Credits"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </LinearLayout>
        </LinearLayout>
    </TableRow>
</TableLayout>

1 个答案:

答案 0 :(得分:13)

正如@Brosa在评论中所说,使用android:scaleType="fitXY"属性。

通过你找到了你的解决方案,我正在写这个答案,写下关于android:scaleType的不同选项的简短描述以供将来帮助。

此attreibute有几种选择。他们是

  1. 矩阵
  2. fitXY
  3. fitStart
  4. fitCenter
  5. fitEnd
  6. 中心
  7. centerCrop
  8. centerInside
  9. 以下是来自doc

    的小描述

    <强> 1。基质
    绘图时使用图像矩阵缩放。

    <强> 2。 fitXY
    独立地在X和Y中缩放图像,以便src完全匹配dst。这可能会改变src的宽高比。

    第3。 fitStart
    通过计算将保持原始src宽高比的比例来缩放图像,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。 START将结果与dst的左边和上边缘对齐。

    <强> 4。 fitCenter
    通过计算将保持原始src宽高比的比例来缩放图像,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。结果集中在dst内。

    <强> 5。 fitEnd
    通过计算将保持原始src宽高比的比例来缩放图像,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。 END将结果与dst的右边和底边对齐。

    <强> 6。中心
    将图像置于视图中心,但不执行缩放。

    <强> 7。 centerCrop
    均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。

    <强> 8。 centerInside
    均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应尺寸(减去填充)。