Picasso에서 원형으로 잘라낸 이미지에 테두리
입문
Picasso로 그림을 둥글게 자른 것은 Picasso에서 필렛 이미지 그리기 등에서 소개된 것이지만, 자른 그림에 테두리를 덧붙이고 싶어서 조사한 노트입니다.
이번에 사용한 프로그램 라이브러리의 버전은 아래와 같으니 적당히 바꾸십시오.
실시
항간의 Circle Transform에 손을 조금 더 넣는 형식으로 이루어졌다.
BorderedCircleTransform.kt
import android.graphics.*
import com.squareup.picasso.Transformation
class BorderedCircleTransform(
private val borderColor: Int,
private val borderSize: Int
) : Transformation {
override fun transform(source: Bitmap?): Bitmap? {
source ?: return null
val size = Math.min(
source.width,
source.height
)
val x = (source.width - size) / 2
val y = (source.height - size) / 2
val squaredBitmap = Bitmap.createBitmap(
source,
x,
y,
size,
size
)
if (squaredBitmap != source) {
source.recycle()
}
val bitmap = Bitmap.createBitmap(
size,
size,
source.config
)
val canvas = Canvas(bitmap)
val paint = Paint().apply {
shader = BitmapShader(
squaredBitmap,
Shader.TileMode.CLAMP,
Shader.TileMode.CLAMP
)
isAntiAlias = true
}
val r = size / 2f
Canvas(bitmap).drawCircle(
r,
r,
r,
paint
)
val paintBg = Paint().apply {
color = borderColor
isAntiAlias = true
}
canvas.drawCircle(
r,
r,
r,
paintBg
)
canvas.drawCircle(
r,
r,
r - borderSize,
paint
)
squaredBitmap.recycle()
return bitmap
}
override fun key(): String = "bordered_circle"
}
호출할 때 테두리의 색깔과 굵기를 지정할 수 있습니다. Picasso.get()
.load(URL)
.transform(
BorderedCircleTransform(
borderColor = Color.RED,
borderSize = 4
)
)
.into(image_view_bordered_circle)
글자 색은 빨간색, 굵기는 4로 지정하면 이런 느낌이다.끝내다
ImageView의 속성에 원형과 테두리를 그리는 시대가 빨리 왔으면 합니다.
Reference
이 문제에 관하여(Picasso에서 원형으로 잘라낸 이미지에 테두리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masaibar/items/177619d38f521d43f323텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)