Рисовать вектор можно рисовать на холсте (изображение растянуто) - PullRequest
1 голос
/ 30 мая 2020
• 1000 получить потоковую передачу и получить результат низкого качества.

Вот код, который я использую для рисования.

    Drawable starIcon = getContext().getDrawable(R.drawable.ic_star);
    VectorDrawableCompat moonIcon = VectorDrawableCompat.create(getContext().getResources(),R.drawable.ic_moon,getActivity().getTheme());

    PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(595, 842, 2).create();
    PdfDocument.Page page = pdfDocument.startPage(pageInfo);
    Canvas canvas = page.getCanvas();

    float x = drawX + (perItemWidth * col);
    RectF rectF = new RectF();
    rectF.set(x + 2.5F - perItemWidth, drawY + 1, x + 1, drawY + perItemHeight - 1);

    float importantSpaceFromLeft = (rectF.width() * 10F) / 100F;
    float importantSpaceFromTop = ((rectF.height() * 2F) / 100F);

    Rect moonIconBounds = new Rect();
    moonIconBounds.left = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 10;
    moonIconBounds.right = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 20;
    moonIconBounds.bottom = (int) (rectF.bottom - importantSpaceFromTop) - 10 - 2;
    moonIconBounds.top = (int) (rectF.bottom - importantSpaceFromTop) - 20 - 2;

    //Setting bounds like 0,0,20,20
    moonIcon.setBounds(0,0,moonIconBounds.width(),moonIconBounds.height());
    canvas.save();
    //Translate canvas to draw at x,y
    canvas.translate(moonIconBounds.left,moonIconBounds.top);
    moonIcon.draw(canvas);
    canvas.restore();

    Rect starIconBounds = new Rect();
    starIconBounds.left = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 10;
    starIconBounds.right = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 20;
    starIconBounds.bottom = (int) (rectF.bottom - importantSpaceFromTop);
    starIconBounds.top = (int) (rectF.bottom - importantSpaceFromTop) - 10;

    //Setting bound from rect
    starIcon.setBounds(starIconBounds);
    starIcon.draw(canvas);

output

https://i.stack.imgur.com/H8Alh.png

https://i.stack.imgur.com/k4kce.png

Оба изображения, дающие одинаковые результаты, растягиваются, я не знаю, почему оба вектора преобразуются из SVG . Как добиться результатов теста.

...