Я пытаюсь сделать круговое изображение с помощью скольжения ... Я следовал этому руководству Как округлить изображение с помощью библиотеки Glide?, но мое изображение всегда обрезалось сверху и снизу
Я пытался изменить размеры изображения, но ничего не изменилось, всегда обрезано и такое же соотношение
Что я делаю неправильно
Glide.with(this).load(MasterFacade.getFacade().getLocalUser().getProfilePicUrl()).apply(RequestOptions.centerCropTransform()).into((ImageView) findViewById(R.id.profileImageView));
и макет
<ImageView
android:id = "@+id/profileImageView"
android:layout_width = "200dp"
android:layout_height = "200dp"
android:layout_gravity = "center"
android:scaleType = "fitXY" />
<ImageView
android:id = "@+id/profileImageView"
android:layout_width = "200dp"
android:layout_height = "200dp"
android:layout_gravity = "center"
android:layout_margin = "15dp"
android:scaleType = "fitXY" />
Проблема в том, что перекрывает другие представления, с запасом это должно решить вашу проблему.
маржа просто добавляет пространство 15dp вокруг всего изображения, это так же, как создание пространства с другими видами, у него есть верхнее поле, marginright, marginleft и marginbottom
Лучшим подходом должно быть размещение этого изображения над вашим постом, следующим и просмотром подписчиков, и под вашей панелью инструментов, если у вас есть это внутри relativelayout, вы можете сделать это с помощью выше и ниже
Это решение вряд ли может помочь.
Попробуй это
Добавить макет xml:
<RelativeLayout
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:padding = "1dp"
android:id = "@+id/lay_profpic"
android:layout_gravity = "center"
android:layout_margin = "20dp"
android:background = "@drawable/border_circle">
<ImageView
android:id = "@+id/profile_picture"
android:scaleType = "centerCrop"
android:layout_centerHorizontal = "true"
android:src = "@color/white"
android:layout_gravity = "center"
android:layout_width = "90"
android:layout_height = "90dp" />
</RelativeLayout>
Добавить код Java, использовать Glide
Glide.with(this)
.load(user.getProfilePicture())
.transform(new CircleTransform(this))
.into(new GlideDrawableImageViewTarget(ivProfilePicture) {
@Override
public void onResourceReady(GlideDrawable drawable, GlideAnimation anim) {
super.onResourceReady(drawable, anim);
ivProfilePicture.setImageDrawable(drawable);
ivProfilePicture.invalidate();
ivProfilePicture.requestLayout();
}
});
Glide.with(context)
.load("https://yourImageUrl.jpg")
.apply(new RequestOptions().circleCrop())
.into(headerImage);
Пожалуйста, не публикуйте только код в качестве ответа, но также объясните, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и качественнее, и с большей вероятностью получат положительные отзывы.
Да, конечно @Mark_Rotteveel, спасибо за ваше ценное предложение.
он работал отлично, но можете ли вы объяснить, что делает эта маржа? зачем мне это нужно? и КАК ВЫ ПОЛУЧИЛИ 15 DP?