Изменение размера изображения с помощью picasso

Привет всем, у меня возникла проблема с Пикассо. Я пытаюсь загрузить изображение из звукового облака, но оно кажется растянутым или очень маленьким. Вот мой XML

        <ImageView
            android:id="@+id/album_cover_art"
            android:layout_width="300dp"
            android:layout_height="200dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/fragment_content_item_top_margin"
            android:scaleType="centerInside"
            android:contentDescription="@string/content_description_image_placeholder"
            android:src="@drawable/placeholder" />

Я пытался использовать изменение размера и центрирование Пикассо внутри, но изображение кажется маленьким.

Picasso.with(getContext()).load(mSelectedTrack.getArtworkURL()).resize(800,300).centerInside().into(mAlbumCoverArt);

Использование изменения размера и обрезки по центру Пикассо сохраняет размер изображения, но приводит к тому, что изображение выглядит растянутым.

Picasso.with(getContext()).load(mSelectedTrack.getArtworkURL()).resize(800,300).centerCrop().into(mAlbumCoverArt);

Любые идеи о том, как это сделать проще, чем написать функцию для самостоятельного изменения размера?


person Doug Ray    schedule 06.02.2017    source источник


Ответы (4)


попробуй это:

для вашего изображения:

<ImageView
android:id="@id/img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"  //add this
android:scaleType="fitCenter" />

А в picasso используйте .fit().centerCrop()

Picasso.with(getContext()).load(mSelectedTrack.getArtworkURL()).resize(800,300).fit().centerCrop().into(mAlbumCoverArt);
person rafsanahmad007    schedule 06.02.2017
comment
Я получаю сбой с этим решением, трассировка стека говорит java.lang.IllegalStateException: Fit нельзя использовать с изменением размера. - person Doug Ray; 06.02.2017
comment
попробуйте удалить изменение размера. Вы уже добавляете высоту ширины в xml - person rafsanahmad007; 06.02.2017

Я избегал растяжения изображения, используя:

.resize(800,0)

Передача 0 в качестве второго параметра сохранила пропорции изображения.

Надеюсь, поможет

person Flavio Gasparini    schedule 30.09.2017

Попробуйте установить фиксированную высоту или ширину, а другие — для обертывания содержимого и загрузки Picasso с .fitXY и не используйте . изменить размер.

person Abhi    schedule 23.10.2017

Попробуйте Glide. https://github.com/bumptech/glide

    Glide.with(this)
            .load(imageUrl)
            .centerCrop()
            .override(300, 300)
            .into(imageView);
person Valdio Veliu    schedule 06.02.2017
comment
Вопрос о том, что Пикассо не скользит. - person Maxime Claude; 06.02.2017