ImageView上面的LinearLayout没有得到displayin Fragment?

时间:2014-07-22 16:39:24

标签: android android-layout

我有ImageView需要以全高度显示。然而,在顶部我创建了包含文本和图像的LinearLayout。我希望它显示在顶部,但也想要图像适合屏幕。我在底部有线性布局,工作正常。

这是我想要在顶部显示的LinearLayout的代码。我有隐藏的操作栏

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:id="@+id/actionbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:background="@android:color/black"
            android:gravity="top"
            android:orientation="horizontal"
            android:visibility="visible" >

            <ImageView
                android:id="@+id/backbutton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:paddingLeft="10dp"
                android:src="@drawable/back_button" />

            <TextView
                android:id="@+id/titleofscreen"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="Testing"
                android:textColor="#22c064"
                android:textSize="18sp" />
        </LinearLayout>

        <ImageView
            android:id="@+id/imageShown"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:scaleType="fitXY" /> 
</FrameLayout>

如果我没有将imageView比例类型设置为android:scaleType =&#34; fitXY&#34;然后它工作但图像不适合屏幕。

我想显示图像以适合包含文本的上方栏和下方有一些图标。但如果我制作图像scaletype =&#39; fitXY&#39;它没有显示在上面的文字。以下是截图,但我希望图像占用空间 enter image description here

1 个答案:

答案 0 :(得分:1)

如果您希望图片低于actionbar,则不应将FrameLayout用作父母。您应该使用垂直LinearLayout重量或'RelativeLayout&#34;。请尝试以下代码:

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

    <LinearLayout
        android:id="@+id/actionbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="@android:color/black"
        android:gravity="top"
        android:orientation="horizontal"
        android:visibility="visible" >

        <ImageView
            android:id="@+id/backbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:paddingLeft="10dp"
            android:src="@drawable/back_button" />

        <TextView
            android:id="@+id/titleofscreen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Testing"
            android:textColor="#22c064"
            android:textSize="18sp" />
    </LinearLayout>

    <ImageView
        android:id="@+id/imageShown"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/actionbar"
        android:layout_alignParentBottom="true"
        android:scaleType="fitCenter"
        /> 
</RelativeLayout>


此外,我怀疑您使用fitXY作为android:scaleType,因为它不会保持图像的纵横比 - 因此您的图像将会变形(拉伸)。在您的情况下,您应该使用fitCenter,但这取决于您希望如何缩放图片 - 您还可以使用centerInsidecenterCrop进行游戏。