Kiedy zaczynam malować, koloruje całe tło, to znaczy, że powinno tylko malować białe plamy. Zrzut ekranu aplikacji przedstawia się następująco. Korzystając z Android Paint, chcę pomalować tylko białe plamki na tle do rysowania [Panda] i pomijać dowolny inny kolor.Wykrywanie koloru tła z Androidem Paint
onDraw()
funkcja:
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);
}
}
i onTouchEvent
funkcja:
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;
}
Przepraszam, ale nie mam żadnej wiedzy na temat maskowania bitmap. Jaką wartość zainicjowałaby "Bitmap whiteAreas"! taki sam jest problem z 'uderzeniami bitmapowymi' –
whiteAreas jest właśnie tym, co mówi nazwa - bitmapą tak wielką jak obraz pandy, z przezroczystym tłem oraz z brzuchem i twarzą pandy wyciągniętej. Mapa bitowa pociągnięć służy do przechowywania rysunków wykonanych przez użytkownika. Przygotowałem dla Ciebie obraz – Zielony
Przepraszam raz jeszcze, ale nie rozumiem :(, mam na myśli, jak utworzyć maski i pociągnięcia bitmap z klasy 'view'? Tło, nad którym pracujemy, jest klasą Rozszerzony z 'widoku' . –