У меня есть это 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()
. Но он не может выполнить преобразование, которое я хочу.
На первой фотографии все выглядит так, как я хочу, но оно просто использовано ImageView контейнер.
На второй фотографии я использую контейнер CircleImageView , и он больше не выглядит так, как хотелось бы - на фотографии уши обрезаны.
Пожалуйста, не могли бы вы мне помочь, как мне получить правильный результат?
ПРИМЕЧАНИЕ: I не могу использовать .load(R.drawable.icon)
и я не могу использовать контейнер ImageView (возможно, я могу, если сделаю это обведите как-нибудь)