Как нарисовать растровое изображение с закругленными углами? - PullRequest
0 голосов
/ 11 января 2020

У меня было изображение, которое я получил из URL и вставил в растровое изображение. Теперь мне нужно нарисовать это растровое изображение с помощью canvas, и оно должно быть с закругленными углами.

PS

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

var url = "someurl"
var mediaMetadataRetriever = MediaMetadataRetriever()
mediaMetadataRetriever.setDataSource(url, HashMap<String, String>())
var frame:Bitmap = mediaMetadataRetriever.getFrameAtTime(time)          // get image from url 
var rect = Rect(left, top, right, bottom)                               // coordinates for bitmap
canvas.drawBitmap(frame, null, rect, paint)

1 Ответ

0 голосов
/ 11 января 2020
public class CustomImageView extends ImageView {
public static float cornerRadius = 19.0f; 
public CustomImageView(Context context) {
    super(context);
}

public CustomImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomImageView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected void onDraw(Canvas canvas) {
    Path clipPath = new Path();
    RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight());
    clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
    canvas.clipPath(clipPath);
    super.onDraw(canvas);
}

}

<CustomImageView
            android:id="@+id/selectIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...