10
페인트를 시작할 때 전체 배경에 색상이 지정됩니다. 즉, 흰색 부분 만 칠해 야합니다. 응용 프로그램 화면 캡처는 다음과 같습니다. Android Paint를 사용하여 배경 드로어 블 팬더 [Panda]에 흰색 점만 페인트하고 다른 색상은 건너 뜁니다.안드로이드 페인트로 배경 이미지 색상 감지
onDraw()
기능은 다음과 같습니다
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
canvas.drawPath(circlePath, circlePaint);
for (Pair<Path,Integer> path_clr : path_color_list){
paint.setColor(path_clr.second);
canvas.drawPath(path_clr.first, paint);
}
for (Pair<Path,Integer> path_clr : circular_path_color_list){
circlePaint.setColor(path_clr.second);
canvas.drawPath(path_clr.first, paint);
}
}
및 onTouchEvent
기능은 다음과 같습니다
public boolean onTouchEvent(MotionEvent event) {
float pointX = event.getX();
float pointY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
circlePath.reset();
path.moveTo(pointX, pointY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(pointX, pointY);
circlePath.reset();
circlePath.addCircle(pointX, pointY, 10, Path.Direction.CW);
break;
case MotionEvent.ACTION_UP:
circlePath.reset();
break;
default:
return false;
}
postInvalidate();
return true;
}
미안하지만 비트 맵 마스킹에 대한 지식이 없습니다. 'Bitmap whiteAreas'는 어떤 값으로 초기화 될까요! '비트 맵 스트로크 '와 같은 문제가 있습니다. –
whiteAreas는 그 이름이 말하는 것입니다 - 팬더 이미지만큼 큰 비트 맵, 투명한 배경, 팬티의 얼굴과 배꼽이 그려져 있습니다. 스트로크 비트 맵은 사용자가 수행 한 도면을 유지하는 데 사용됩니다. 나는 당신을위한 이미지를 준비했습니다 – Zielony
죄송합니다.하지만 요점을 얻지는 못했습니다. (저는'view' 클래스에서 마스크와 스트로크 비트 맵을 어떻게 생성할까요? 'view'에서 확장 –