0
그림 응용 프로그램을 개발하고 그림의 특수 영역을 지우려면 지우개 도구를 구현해야합니다. 지우개는 일부 원형 영역을 고르게 지워야합니다. 즉, 원의 중심 만 완전히 지워지고 원의 모서리는 알파로 부분적으로 지워 져야합니다.특수 비트 맵 형식의 캔버스 영역을 지움
private val picture: Bitmap
private val bgPaint = Paint()
private var eraser: Bitmap
private val eraserPaint: Paint = Paint().apply {
val mode: PorterDuff.Mode = PorterDuff.Mode.SRC_OUT
xfermode = PorterDuffXfermode(mode)
color = Color.TRANSPARENT
alpha = 0
}
init {
val options = BitmapFactory.Options()
options.inMutable = true
picture = BitmapFactory.decodeResource(resources, R.drawable.petushara, options)
eraser = BitmapFactory.decodeResource(resources, R.drawable.eraser, options)
setLayerType(View.LAYER_TYPE_SOFTWARE, bgPaint)
}
override fun draw(canvas: Canvas) {
super.draw(canvas)
canvas.drawBitmap(picture, 0f, 0f, bgPaint)
canvas.drawBitmap(eraser, 100f, 300f, eraserPaint)
}
:
내가보기의 일부 영역을 지우려면,
그런 다음 지우개의 그림을 representes 이미지를 만들어이 동작을 달성하기 위해,이 같은 일부 사진 위의 지우개의 그림을 그립니다
이것은 전체보기 클래스이며 생성자는 제외됩니다. 나는 사진의 영역 지우개의 그림에 의해 삭제됩니다 기대하지만,이 같은 사각형의 그림에 의해 삭제합니다 :
이 내가하지 않는 것이 좋습니다 솔루션입니다. 이미 지워진 영역을 지우려고하면이 영역은 지우개 색으로 채색됩니다. 우리의 경우 블랙 –