簡體   English   中英

如何保持恆定的ImageView寬度和高度

[英]How to maintain a constant ImageView width and and height

我有一個recyclerView顯示imageView(縮略圖大小)和textView的列表。 每當我用大量文本填充textViews時,imageView就會縮小並且高度會增加。 textView也被包裹在左邊,在右邊留有很多空白。 下面是我正在談論的圖像。 即使我的textView有很多文本,也如何固定縮略圖的寬度和高度,以保持圖像質量。

在此處輸入圖片說明

* axml **

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view"
    android:background="#E2E2E2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="4dp"
    card_view:cardCornerRadius="7dp"
    android:layout_marginRight="4dp"
    android:layout_marginLeft="4dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="12dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:weightSum="100">
            <ImageView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="25"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"
                android:id="@+id/imageView" />
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="63"
                android:orientation="vertical"
                android:paddingRight="10dp"
                android:paddingLeft="10dp"
                android:paddingTop="7dp"
                android:paddingBottom="7dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="18sp"
                    android:textColor="#333333"
                    android:text="Caption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/txt_title"
                    android:textStyle="bold"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="14sp"
                    android:textColor="#333333"
                    android:text="Caption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/textView"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="13sp"
                    android:textColor="#808080"
                    android:text="Caption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/pub_date"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:scrollbars="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</android.support.v7.widget.CardView>

有關ImageView的setMaxWidth方法,請參考此javadoc:

提供此視圖最大寬度的可選參數。 僅在setAdjustViewBounds(boolean)設置為true時有效。 要將圖像設置為最大100 x 100,同時保留原始長寬比,請執行以下操作:

1)將adjustViewBounds設置為true

2)將maxWidth和maxHeight設置為100

3)將高度和寬度布局參數設置為WRAP_CONTENT。

請注意,如果原始圖像較小,則使用此方法此視圖可能仍小於100 x 100。 要將圖像設置為固定大小,請在布局參數中指定該大小,然后使用setScaleType(android.widget.ImageView.ScaleType)確定如何使圖像適合邊界。

第1步:刪除此行:

android:weightSum="100"

步驟2:在此行中將63更改為1:

android:layout_weight="63"

步驟3:更改以下幾行:

android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"

對此:

android:layout_width="wrap_content"
android:layout_height="match_parent"

或者如果您想要固定寬度:

android:layout_width="150dp"
android:layout_height="match_parent"

用這個

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view"
    android:background="#E2E2E2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="4dp"
    card_view:cardCornerRadius="7dp"
    android:layout_marginRight="4dp"
    android:layout_marginLeft="4dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="12dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:weightSum="100">
            <ImageView
                android:layout_width="0dp"
                **android:layout_height="wrap_content"**
                android:layout_weight="25"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"
                android:src="@mipmap/ic_launcher"
                android:id="@+id/imageView" />
            <LinearLayout
                android:layout_width="0dp"
                **android:layout_height="wrap_content"**
                android:layout_weight="63"
                android:orientation="vertical"
                android:paddingRight="10dp"
                android:paddingLeft="10dp"
                android:paddingTop="7dp"
                android:paddingBottom="7dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="18sp"
                    android:textColor="#333333"
                    android:text="Captionjkdhka asdgasidga sgdia g Caption vCaptionCaptionCaptionvCaptionCaption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/txt_title"
                    android:textStyle="bold"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="14sp"
                    android:textColor="#333333"
                    android:text="Caption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/textView"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textSize="13sp"
                    android:textColor="#808080"
                    android:text="Caption"
                    android:layout_weight="1"
                    android:ellipsize="none"
                    android:maxLines="100"
                    android:scrollHorizontally="false"
                    android:id="@+id/pub_date"
                    android:fontFamily="Times New Roman"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_gravity="center_vertical|left" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>

問題在於圖像視圖和布局的高度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM