Скольжение трансформации, чтобы выбрать положение обоев? - PullRequest
0 голосов
/ 28 апреля 2019

Я использую библиотеку Glide для приложения для обоев, и я застрял с проблемой, что при применении моих стен единственное, что я вижу на экране, - это левая сторона заданных изображений.Я хотел бы, по крайней мере, увидеть центр изображения и, в лучшем случае, увидеть позицию, которую я выбрал, прежде чем нажать «применить».Я перепробовал все три преобразования Glide: centerCrop, fitCenter и CenterInside, но мои стены остались на прежнем месте.Это мой код, основанный на этом документе: https://bumptech.github.io/glide/doc/transformations.html

Glide.with(getApplicationContext())
    .asBitmap()
    .load(passedUrl)
    .centerInside()
    .into(new CustomTarget<Bitmap>()

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

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

на вашем изображении определите:

android:scaleType="fitCenter"

или

android:scaleType="centerCrop"

и

android:adjustViewBounds="true"

И это будет работать.В Glide есть ошибка, которая препятствует определению Java-кодом, если для его xml не задано это значение.

пример:

<ImageView
        android:id="@+id/cover"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:background="@drawable/bgheader"
        android:scaleType="centerCrop"
        />

Редактировать: Это выглядиткак вы используете флаттер.Я никогда не использовал флаттер (хотя я испытываю желание начать).Но вам нужно будет найти способ вставить центральную часть в ваш код флаттера или установить высоту и ширину специально для глиссады.Проблема в том, что glide не всегда определяет конкретный размер изображения, поэтому он установлен в xml.Команды, которые вы использовали, вступают в силу только тогда, когда в коде глиссады заданы размеры.Попробуйте например

Glide.with (getApplicationContext ())
     .asBitmap ()
     .load (passedUrl)
     .override (200, 200) //replace these values with Height and width of your image 
     .centerCrop ()
     .into (new CustomTarget <Bitmap> ()
0 голосов
/ 29 апреля 2019

попробуйте

Glide.load(url).centerCrop().placeholder(R.drawable.loading_spinner)
     .into(myImageView);
...