기본적으로 나는 O 형을 그리려합니다. (배경색을 맞추는 것 외에) 어떤 방법으로도 그것을 만들 수있어서 두 개의 타원형을 그릴 수 있고 캔버스의 중앙 타원형이 활동의 배경에 투명하게 표시되도록 할 수 있습니까? 여기Android 캔버스에서 타원형 섹션 제거
는 내가 지금까지 무엇을 가지고 :
protected void onDraw(Canvas canvas) {
if(mainTimerAngle - 90 < 0){
mainTimerAngle += 270;
}
canvas.drawArc(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()),
-90, mainTimerAngle-90,true, mainTimerPaint);
canvas.drawOval(new RectF(barWidth, barWidth, canvas.getWidth() - barWidth,
canvas.getHeight() - barWidth), backgroundPaint);
}
질문 ondraw 메서드에서 캔버스로이 작업을 수행하려면 어떻게해야합니까? 비트 맵을 설정하려고하면 지원되지 않는 연산 예외가 발생합니다. – Landister
아이디어는 드로잉을위한 전용'Bitmap'을 만들고 (다시 한번 사용할 수 있습니다), 그리고 그 비트 맵을 그리기위한 새로운'Canvas'를 만듭니다. 그 비트 맵을 그린 후, onDraw()에서 제공된 캔버스로 전체 비트 맵을 그릴 수 있습니다. 언급 된'Xfermodes.java' 파일을 살펴보면이 개념을 보여주는 예제를 발견 할 수있을 것입니다. –
@Landister : 다소 지연되었을 수도 있지만, 위의 대안으로, 아마도 Canvas.saveLayer() 메소드 중 하나를 사용하여 화면 외부 비트 맵을 그릴 수 있습니다. –