其他分享
首页 > 其他分享> > android-图片拉伸

android-图片拉伸

作者:互联网

API 7(2.1)

我正在为我的应用程序的drawable-hdpi文件夹实现高分辨率图像.

在屏幕底部,我有一个带有fill_parent宽度的LinearLayout.在里面,我有3个权重为1的LinearLayouts.在这些里面,我有一个ImageView.实际上,我有3个相等大小的空间可容纳3张图像.

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">   
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/image1"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:padding="0dip">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/image2"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/image3"
                />
        </LinearLayout>
    </LinearLayout>

当手机处于横向模式时,一切看起来都很好.

当手机处于纵向模式时,图像会按比例缩小,因为它们的宽度对于屏幕上的1/3空间来说太宽了.图像仍然看起来不错.

这是我的问题:

我的图像可以缩放,但是包裹每个图像的LinearLayouts似乎没有缩放其高度.

在横向模式下,包裹图像的LinearLayouts的顶部和底部共享一条边.这意味着,ImageView的顶部与将其包装的LinearLayout的顶部对齐,ImageView的底部与将其包装的LinearLayout的底部对齐.换句话说,LinearLayout的高度== ImageView的高度.

在纵向模式下,包裹图像的LinearLayouts的顶部和底部与图像的顶部和底部之间有一堆空间,就像填充一样.换句话说,LinearLayout的高度> ImageView的高度.这是不可取的.

有任何想法吗?

几乎就像在调整LinearLayout和ImageView的大小,然后挤压ImageView以适合它,然后不调整LinearLayout的大小…

解决方法:

您可以尝试针对两个方向设计单独的布局.在项目的res文件夹中,创建一个名为layout-land的子文件夹.在那里复制或创建具有相同名称的新布局.这样,您将可以在任何方向上完全控制布局.

由于您使用的是android:layout_weight =“ 1”,linearLayouts是否应等分分割空间,因此会出现多余的空间?

编辑:
设置LinerLayout的权重后,似乎ImageView会扩大其高度.将此行添加到每个ImageViews中:

android:adjustViewBounds=”true”

标签:android-linearlayout,scale,imageview,android
来源: https://codeday.me/bug/20191102/1993113.html