Как нарисовать путь с пользовательской формой, такой как звезда, многоугольник и т. Д. На холсте в нативном программировании Android? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу нарисовать с помощью некоторых фигур, например, звезды. Пока я двигаю пальцем, я хочу нарисовать звезду. Форма звезды - только пример. Что я на самом деле хочу сделать, так это реализовать разные точки с помощью файлов .png с решением.

Я использую bitmapShader для этих целей, однако он не работает так, как я хотел. Это просто цвета фиксированных звезд на заднем плане. Это не то, что я хотел. Ниже мой код:

    Bitmap patternBMP = BitmapFactory.decodeResource(getResources(), R.drawable.star);
    bitmapShader = new BitmapShader(patternBMP, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); //create shader
    paintDraw.setShader(bitmapShader);

@Override
protected void onDraw(Canvas canvas)
{
    canvas.drawBitmap(bitmap, 0, 0, paintDraw);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    float touchX = event.getX();
    float touchY = event.getY();

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            drawPath.moveTo(touchX, touchY);

            break;
        case MotionEvent.ACTION_MOVE:
            drawPath.lineTo(touchX, touchY);
            canvasBitmap.drawPath(drawPath, paintDraw);
            break;
        case MotionEvent.ACTION_UP:
            drawPath.lineTo(touchX, touchY);
            canvasBitmap.drawPath(drawPath, paintDraw);
            drawPath.reset();
            break;
        default:
            return false;
    }
    //redraw
    invalidate();
    return true;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...