Есть ли способ скруглить углы от ImageView
до xml layout
? И даже если нет, то как мы можем этого добиться?
PS: image urls
извлекаются из API. Не из папки drawable
Возможный дубликат ImageView закругленные углы
Вы можете добиться этого, используя пользовательские представления, подобные этому
public class RoundImageView extends ImageView {
private float mRadius = 18.0f;
private Path mPath;
private RectF mRect;
public RoundImageView(Context context) {
super(context);
init();
}
public RoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public RoundImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
mRect = new RectF(0, 0, this.getWidth(), this.getHeight());
mPath.addRoundRect(mRect, mRadius, mRadius, Path.Direction.CW);
canvas.clipPath(mPath);
super.onDraw(canvas);
}
}
и используйте его в своем XML
<your_pkag.RoundImageView
android:id = "@+id/imgView"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:src = "@drawable/image" />
Как java-файл RoundImageView используется в xml?
вот так <your_pkag.RoundImageView android:id = "@+id/imgView" android:layout_width = "match_parent" android:layout_height = "match_parent" android:background = "@drawable/image" />
Кроме того, я получаю изображения из своего API, поэтому android:background = "@drawable/image"
не будет работать? Или может? Поскольку URL-адреса изображений поступают из API, и я установил их в ImageView. Так что я не думаю, что будет возможно установить его в качестве фона.
удалить android:background = "@drawable/image"
и использовать android:src = "@drawable/image"
. я обновил свой ответ
Хорошо. Спасибо, попробую.
с помощью библиотеки Скольжение
использовать
Glide
.with(context)
.load(url)
.apply(
RequestOptions()
.circleCrop())
.into(imageView)
так что вы используете API, используйте скольжение
Я использую Пикассо. С этим можно сделать? Или же я буду использовать Glide. И в любом случае, это было в моей голове какое-то время, должен ли я использовать Picasso или Glide
Я не знаю, что ты хочешь сделать. Но для границ.
Вы можете создать файл для рисования, как показано ниже.
line.xml
<?xml version = "1.0" encoding = "utf-8"?>
<shape xmlns:android = "http://schemas.android.com/apk/res/android"
android:shape = "rectangle">
<corners android:radius = "5dp" />
<stroke android:width = "2dp" android:color = "#000" />
</shape>
activity_xxx.xml
<ImageView
android:layout_height:"200dp"
android:layout_width:"200dp"
android:background:"@drawable/line.xml"
/>
попробуйте образец по этой ссылке: https://stackoverflow.com/questions/20743859/imageview-rounded-corners