在方向更改期间,ImageView不会保持恒定的高度

时间:2017-10-25 11:39:30

标签: android android-imageview

我有一个XML布局,其中ImageView名为cust_img,我可能会在ImageView内放置任意尺寸的图像,但是当方向时高度和宽度不得更改变化。目前这种情况并没有发生,任何人都可以建议我如何实现这一目标?

我尝试应用以下ScaleType

  • CENTER
  • CENTER_CROP
  • CENTER_INSIDE
  • FIT_CENTER
  • FIT_END
  • FIT_START
  • FIT_XY
  • MATRIX

他们都没有工作。

这是我的布局XML:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:weightSum="1"
            android:background="@color/white">

                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="0.94"
                    android:fillViewport="true">

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

                        <LinearLayout
                            android:id="@+id/imglayout"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="0.3"
                            android:gravity="center_vertical"
                            android:orientation="vertical">

                            <ImageView
                                android:id="@+id/cust_img"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_marginBottom="10dp"
                                android:layout_marginLeft="20dp"
                                android:layout_marginRight="20dp"
                                android:layout_marginTop="10dp"
                                android:adjustViewBounds="true"
                                android:maxHeight="150dp"
                                android:maxWidth="160dp" />
                        </LinearLayout>

                        <FrameLayout
                            android:id="@+id/frag_layout"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="0.7"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
                        </FrameLayout>
                    </LinearLayout>
                </ScrollView>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="0.06">
                <include layout="@layout/footer_layout"/>
            </LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

您必须将修正高度设置为ImageView,否则将wrap_content设置为ImageView宽度。

答案 1 :(得分:1)

而不是保持宽度匹配父级使用,高度和宽度包装内容。

使用image scale_type:CENTER_CROP

    <ImageView
         android:id="@+id/cust_img"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginBottom="10dp"
         android:layout_marginLeft="20dp"
         android:layout_marginRight="20dp"
         android:layout_marginTop="10dp"
         android:adjustViewBounds="true"/>

答案 2 :(得分:0)

使用此

更改您的imageview代码
                          <ImageView
                            android:id="@+id/cust_img"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="10dp"
                            android:layout_marginLeft="20dp"
                            android:layout_marginRight="20dp"
                            android:layout_marginTop="10dp"
                            android:adjustViewBounds="true"
                            android:maxHeight="150dp"
                            android:maxWidth="160dp" />