将FrameLayout的高度与其中的ImageView匹配

3

在我的布局中,我有一个FrameLayout,其中包含2个ImageView。一次只显示一个ImageView,并通过3D旋转动画在ImageView之间切换。

<FrameLayout
            android:id="@+id/animContainer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" >

            <ImageView
                android:id="@+id/picture1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="true"
                android:src="@drawable/malware" />

            <ImageView
                android:id="@+id/picture2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:focusable="true"
                android:src="@drawable/browsing"
                android:visibility="gone" />
        </FrameLayout>

我的xml文件有一个问题,即使我没有指定任何顶部或底部的边距/内边距,它仍会在FrameLayout中的ImageView上方和下方留下一些空白空间。在FrameLayout中使用的ImageView具有相等的高度。 我希望FrameLayout的高度与其中的ImageView的高度完全相同。 我该如何实现这一点? 谢谢。
编辑: 我观察到另一件事是,在横向模式下,空白空间添加到ImageView的左侧和右侧,并且FrameLayout的宽度与ImageView的宽度不匹配。 如何使FrameLayout的宽度和高度与ImageView相同?

将ImageView的ScaleType设置为FitXY。 - hemanth kumar
你在 ImageView 的 xml 中尝试过 android:scaleType="fitXY" 吗? - Arslan Anwar
1
感谢您的解决方案。但是android:scaleType="fitXY"对我没有太大帮助。这样做会使我的ImageView的高度增加,以与FrameLayout的高度相匹配。因此我的图片在垂直方向上被拉伸了。我希望将FrameLayout的高度与我的ImageView的高度匹配。 - Zeba
1
@Zeba,我现在也遇到了完全相同的问题。FrameLayout比其内容要大。你能找到解决这个问题的方法吗? - Anton Cherkashyn
2个回答

0

我想我找到了一个解决方案,在我的项目中,我必须在右上角放置一个图像作为删除图标,但必须花费一些功夫才能使X的边缘与照片的顶部对齐。 fitCenter 会在顶部和底部创建空白。fitStart 的效果非常好。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/front_right"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="top"
        android:scaleType="fitStart"
        android:adjustViewBounds="true"
        android:onClick="imageEditClicked"
        android:src="@drawable/myimage"/>

    <ImageView
        android:id="@+id/front_right_x"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:background="@color/white"
        android:layout_gravity="end|top"
        android:clickable="true"
        android:focusable="true"
        app:srcCompat="@drawable/com_facebook_tooltip_black_xout" />

</FrameLayout>

0

2
谢谢您的回答,但是android:adjustViewBounds="true"并没有对我的布局产生影响。FrameLayout的高度仍然与其中的ImageView的高度不匹配。 - Zeba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接