【问题标题】:How to resize images to fit a fixed size inside a CardView in Android?如何在 Android 的 CardView 中调整图像大小以适应固定大小?
【发布时间】:2016-06-04 23:43:38
【问题描述】:

我有几个 CardView,每个左侧都有一个 ImageView。

每个 ImageView 都有一个 layout_weight 以使其适合每个 CardView 的相同宽度和固定高度(在本例中为 80dp)。

当图像水平时,它们看起来不错,例如 125。但是当它们是垂直的时,它们就不适合 34

我尝试过:直接在 ImageViews 上声明 layout_weight / 在 LinearLayout 中移动 ImageViews 并在其上声明 layout_weight(实际代码) / Buttons 而不是 ImageViews / 使用 adjustViewBounds 和每个 scaleType。这些都不起作用。

这是我每个 CardView 的实际代码,我将不胜感激!提前谢谢你:)

<android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardElevation="3dp"
                android:layout_marginTop="3dp"
                android:layout_marginLeft="7dp"
                android:layout_marginStart="7dp"
                android:layout_marginRight="7dp"
                android:layout_marginEnd="7dp">

                <LinearLayout android:id="@+id/cardview_inner_linearlayout"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <LinearLayout android:id="@+id/imageview_linearlayout"
                        android:layout_width="0dp"
                        android:layout_height="80dp"
                        android:layout_weight="7">

                        <ImageView android:id="@+id/imageview"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:scaleType="centerCrop"
                            android:src="@drawable/halloween1" />

                    </LinearLayout>

                    <LinearLayout android:id="@+id/whitearea_linearlayout"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:orientation="vertical">

                         // White area to the right of the image

                    </LinearLayout>

                </LinearLayout>

</android.support.v7.widget.CardView>

【问题讨论】:

    标签: android android-layout imageview android-linearlayout android-cardview


    【解决方案1】:

    我强烈建议开始使用百分比而不是重量 https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html

    现在您可以使用以下布局:

    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="7dp"
        android:layout_marginRight="7dp"
        android:layout_marginTop="3dp"
        app:cardElevation="3dp">
    
    <LinearLayout
        android:id="@+id/cardview_inner_linearlayout"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:baselineAligned="false"
        android:orientation="horizontal">
    
            <LinearLayout
                android:id="@+id/imageview_linearlayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1">
    
                <ImageView
                    android:id="@+id/imageview"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:adjustViewBounds="true"
                    android:scaleType="centerInside"
                    android:src="@drawable/halloween1"/> 
    
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/whitearea_linearlayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:orientation="vertical">
    
            </LinearLayout>
    
        </LinearLayout>
    
    </android.support.v7.widget.CardView>
    

    【讨论】:

      【解决方案2】:

      您可以尝试更改图像的比例类型

      【讨论】:

        【解决方案3】:

        在 ImageView 属性中使用android:scaleType="centerCrop"

        【讨论】:

          猜你喜欢
          • 2012-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-12
          • 2015-07-16
          • 2014-05-05
          • 2012-09-15
          相关资源
          最近更新 更多