Не удается изменить размер изображения в CircleImageView - PullRequest
0 голосов
/ 08 мая 2020

У меня есть это XML:

<de.hdodenhof.circleimageview.CircleImageView
    android:src="@drawable/ic_kitty_superhero"
    android:id="@+id/userAvatar"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_gravity="center"
    android:layout_marginBottom="16dp"
    app:civ_border_color="@android:color/white" // just to show you wrong result
    app:civ_border_width="1dp" />

и эта функция расширения для загрузки изображения:

fun ImageView.loadImage(context: Context, url: String) {
    val resourceID = context.resources.getIdentifier(url, "drawable", context.packageName)
    if (resourceID != 0) { // if it's an image from drawable folder
        Glide.with(context)
            .load(resourceID)
            .fitCenter()
            .into(this)
    } else {
        Picasso.with(context)
            .load(url)
            .fit()
            .centerInside()
            .into(this)
    }
}

Поскольку Пикассо не знает, как работать с resourceID, Мне нужно использовать Glide или что-то подобное, например this.setImageResource(). Но он не может выполнить преобразование, которое я хочу.

enter image description here enter image description here

На первой фотографии все выглядит так, как я хочу, но оно просто использовано ImageView контейнер.

На второй фотографии я использую контейнер CircleImageView , и он больше не выглядит так, как хотелось бы - на фотографии уши обрезаны.

Пожалуйста, не могли бы вы мне помочь, как мне получить правильный результат?

ПРИМЕЧАНИЕ: I не могу использовать .load(R.drawable.icon) и я не могу использовать контейнер ImageView (возможно, я могу, если сделаю это обведите как-нибудь)

1 Ответ

0 голосов
/ 08 мая 2020

Я решил свою проблему, используя ImageView контейнер и Преобразование круга для Picasso

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...