Проблемы с библиотекой Fresco

Я использую библиотеку Fresco для загрузки изображений и гифок в свое приложение. Большое ограничение, с которым я столкнулся в Fresco, заключается в том, что необходимо установить ширину и высоту макета. Итак, я настроил свой простой вид рисовальщика следующим образом:

 <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/image"
            android:layout_marginTop="@dimen/feed_item_margin"
            android:scaleType="fitCenter"
            fresco:actualImageScaleType="fitStart"
            android:layout_below="@+id/content_header"
            android:layout_width="match_parent"
            android:layout_height="@dimen/texture_view_height"
            fresco:placeholderImage="@drawable/placeholder"
            />

Моя проблема заключается в том, что если высота изображения больше ширины, справа от изображения остается много пустого пространства (см. Приложение), однако высота в порядке.

введите здесь описание изображения

Тогда это может произойти, когда высота фактического изображения меньше ширины (см. Приложение), поэтому здесь, поскольку фиксированная высота составляет 250 dp, под изображением много пустого пространства.

введите здесь описание изображения

Я прошел через разные типы шкалы в SimpleDrawerView, и ни один из них, похоже, не работает, чтобы отображать то, что я хочу.

Мне интересно, есть ли у кого-нибудь большой опыт работы с Fresco? Я начал использовать это для загрузки картинок, так как у меня была проблема с Glide.

Если кто-нибудь может помочь, я был бы очень признателен.

К вашему сведению, эти изображения передаются с сервера, я не могу контролировать изображения.


person DJ-DOO    schedule 16.10.2015    source источник
comment
fresco:actualImageScaleType="fitStart" попробуйте удалить это.   -  person Vipul Asri    schedule 16.10.2015
comment
@vipul_asri Я уже пробовал это, он просто обрезает изображение ... это действительно плохая функция ..   -  person DJ-DOO    schedule 16.10.2015
comment
ты пробовал android:gravity="center"   -  person Vipul Asri    schedule 16.10.2015
comment
это ограничение с Fresco ... очень плохое из того, что я могу собрать   -  person DJ-DOO    schedule 19.10.2015
comment
Вам обязательно следует подумать о том, чтобы принять ответ, который вы получили.   -  person Andrea Lazzarotto    schedule 19.04.2016


Ответы (1)


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

Во-первых, я настоятельно рекомендую вам сначала прочитать документацию. Вы обнаружите, что android:scaleType полностью игнорируется Fresco и вместо него следует использовать fresco:actualImageScaleType.

Моя проблема заключается в том, что если высота изображения больше ширины, справа от изображения остается много пустого пространства (см. Приложение), однако высота в порядке.

Если высота в порядке, как предполагается заполнить дополнительное горизонтальное пространство? Вот единственные возможные варианты:

  • обрезать изображение (например, actualImageScaleType=centerCrop)
  • искажение изображения так, чтобы оно заполнило все пространство (actualImageScaleType=fitXY)
  • наличие пустого места на одной или обеих сторонах изображения (например, actualImageScaleType=fitCenter).

Тогда это может произойти, когда высота фактического изображения меньше ширины (см. Приложение), поэтому здесь, поскольку фиксированная высота составляет 250 dp, под изображением много пустого пространства.

Возможно, следующее удовлетворит вас. Установите параметры макета следующим образом:

android:layout_width="match_parent"
android:layout_height="wrap_content"
fresco:viewAspectRatio="1.33"
fresco:actualImageScaleType="fitCenter"

Это приведет к тому, что представление drawee будет иметь ширину родителя, а отношение ширины к высоте по умолчанию будет 1,33 (4: 3). Затем вы можете программно установить соотношение сторон, чтобы оно соответствовало изображению, как я объяснил в другом ответе. Это позволит динамически регулировать высоту просмотра рисунков в зависимости от изображения.

person plamenko    schedule 03.12.2015
comment
Я также использую фреску для отображения изображений в списке. однако у меня есть опасения. когда я устанавливаю ActualImageScaleType в CENTER_CROP и после масштабирования. высота изображения стала меньше simpledrawee высоты, в моем простом представлении остались пробелы. как я могу получить высоту масштабированного изображения и установить ее как высоту моего простого представления? - person Edijae Crusar; 19.01.2016
comment
Этого не должно быть. Если указан тип масштабирования CENTER_CROP, в представлении никогда не должно оставаться пустых мест. Можете ли вы опубликовать скриншот и пример кода, который вы используете? - person plamenko; 21.01.2016
comment
вот мой вопрос и код. stackoverflow.com/questions/34874463/ - person Edijae Crusar; 21.01.2016
comment
пожалуйста, дайте мне знать, когда вы посмотрели на мой вопрос в приведенной выше ссылке. отчаянно нуждаюсь в помощи. - person Edijae Crusar; 21.01.2016