如何在android的LinearLayout中安装imageView,但始终保持其纵横比

Posted

技术标签:

【中文标题】如何在android的LinearLayout中安装imageView,但始终保持其纵横比【英文标题】:How to fit imageView inside LinearLayout in android, but always keep its aspect ration 【发布时间】:2015-10-08 01:31:00 【问题描述】:

我正在尝试制作一个电子商务应用程序,当我从 api 调用中获取图像时,我面临的最大问题是拟合图像。图像可以是任何尺寸,所以我需要确保它们完全适合所有屏幕尺寸。

这是我的购物车 xml listview 项目布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="horizontal"
    android:background="@color/primary">

    <LinearLayout
        android:layout_
        android:layout_
        android:gravity="center"
        android:layout_weight="0.2">

    <ImageView
        android:layout_
        android:layout_
        android:background="@drawable/temp_image_product_detail"
        android:id="@+id/layout_sort_by_listview_icon"/>

</LinearLayout>


<LinearLayout
    android:layout_
    android:layout_
    android:gravity="center"
    android:orientation="vertical"
    android:layout_weight="0.8">

    <TextView
        android:layout_
        android:layout_
        android:text="adkfj;aklsjdf"
        android:textSize="25sp"/>

    <TextView
        android:layout_
        android:layout_
        android:text="Rs. 255"
        android:textSize="25sp"/>

    <TextView
        android:layout_
        android:layout_
        android:text="4.2"
        android:textSize="15sp"/>

</LinearLayout>

我想实现购物车页面和产品列表页面的完美契合外观。如下所示:

http://traverphillips.com/Amazon-Material-Design

【问题讨论】:

【参考方案1】:

我希望它会有所帮助,但我没有测试它:

您的第一个 LinearLayout 应该如下所示

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="horizontal"
android:background="@color/primary">

<LinearLayout
    android:layout_
    android:layout_
    android:gravity="center"
    android:layout_weight="0.2">

<ImageView
    android:layout_
    android:layout_
    android:background="@drawable/temp_image_product_detail"
    android:id="@+id/layout_sort_by_listview_icon"/>

【讨论】:

【参考方案2】:

如果您希望图像水平适合您可以将 layout_width 设置为 fill_parent 并将 layout_height 设置为 wrap_content 但您必须将 adjustViewBount 设置为“true”

【讨论】:

好的,但是当我们改变它的父尺寸时,图像的纵横比仍然不正确。【参考方案3】:

请使用android:scaleType="fitXY" 以适应屏幕

【讨论】:

【参考方案4】:

尝试layout_width="match_parent" 并使用layout_weight

【讨论】:

以上是关于如何在android的LinearLayout中安装imageView,但始终保持其纵横比的主要内容,如果未能解决你的问题,请参考以下文章

Android - LinearLayout:如何在项目之间添加自动空间以水平填充布局

Android:如何以编程方式设置 LinearLayout 边距

如何在Android Studio的活动底部制作Android xml Linearlayout?

Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?

如何在android中使LinearLayout中的TextView拖动平滑?

如何在android的linearlayout中删除阴影?