Адаптируйте размер ImageView к изображению внутри - PullRequest
0 голосов
/ 18 мая 2018

В режиме прокрутки я показываю детали о чем-то, что содержит некоторые изображения.Поэтому я считаю, что это не RecyclerView или ListView, а длинная форма, которая содержит TextView и другие компоненты, а затем список изображений для загрузки из Интернета.Вот макет этого упражнения:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <TextView
                android:id="@+id/picturesTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/reference_view_pictures"
                style="@style/FormSubheader"/>
            <LinearLayout
                android:id="@+id/pictures"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

В своем задании я использую Picasso для загрузки изображений в ImageViews, которые динамически добавляются к изображениям LinearLayout:

for(picture in reference!!.pictures) {
    val imageView = ImageView(this)
    imageView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
    imageView.scaleType = ImageView.ScaleType.FIT_CENTER
    Picasso.with(this)
           .load(picture)
           .placeholder(R.drawable.ic_hourglass_empty_black_48dp)
           .into(imageView)
    pictures.addView(imageView)
}

Изображенияуспешно загружены и все, но по какой-то причине, несмотря на то, что layout_height ImageView установлен на WRAP_CONTENT, когда изображение загружается, высота ImageView намного больше, чем изображение, которое он содержит, поэтому у меня есть огромные пробелы между изображениями, которые я быхотел бы удалить.

Может кто-нибудь, пожалуйста, помогите мне разобраться, что происходит?

...