Угловой радиус изображения

Есть ли способ скруглить углы от ImageView до xml layout? И даже если нет, то как мы можем этого добиться?

PS: image urls извлекаются из API. Не из папки drawable

попробуйте образец по этой ссылке: https://stackoverflow.com/questions/20743859/imageview-round‌​ed-corners

user11469662 29.05.2019 07:56

Возможный дубликат ImageView закругленные углы

Basi 29.05.2019 07:58
1
2
44
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете добиться этого, используя пользовательские представления, подобные этому

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?

Rohan Vaish 29.05.2019 08:00

вот так <your_pkag.RoundImageView android:id = "@+id/imgView" android:layout_width = "match_parent" android:layout_height = "match_parent" android:background = "@drawable/image" />

Basi 29.05.2019 08:03

Кроме того, я получаю изображения из своего API, поэтому android:background = "@drawable/image" не будет работать? Или может? Поскольку URL-адреса изображений поступают из API, и я установил их в ImageView. Так что я не думаю, что будет возможно установить его в качестве фона.

Rohan Vaish 29.05.2019 08:04

удалить android:background = "@drawable/image" и использовать android:src = "@drawable/image". я обновил свой ответ

Basi 29.05.2019 08:06

Хорошо. Спасибо, попробую.

Rohan Vaish 29.05.2019 08:16
Ответ принят как подходящий

с помощью библиотеки Скольжение

использовать

Glide
  .with(context)
  .load(url)
  .apply(
      RequestOptions()
        .circleCrop())
  .into(imageView)

так что вы используете API, используйте скольжение

Basi 29.05.2019 08:08

Я использую Пикассо. С этим можно сделать? Или же я буду использовать Glide. И в любом случае, это было в моей голове какое-то время, должен ли я использовать Picasso или Glide

Rohan Vaish 29.05.2019 08:24

Я не знаю, что ты хочешь сделать. Но для границ.

Вы можете создать файл для рисования, как показано ниже.

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"
    />

Другие вопросы по теме