Программно нарисовать векторную графику / SVG на экране

#java #android #svg

#java #Android #svg

Вопрос:

Я пытаюсь программно нарисовать SVG на экране. Приведенный ниже код — это то, что я пробовал, при запуске программы ничего не отображается.

     public MainView(Context context) {
        hexagon = AppCompatResources.getDrawable(context,R.drawable.hex_svg);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        hexagon.setBounds(30,30,30,30);
        hexagon.draw(canvas);
    }
  

Ответ №1:

setBounds(int left, int top, int right, int bottom) Метод принимает положения ограничивающей рамки объекта рисования — вы установили их все равными 30, таким образом, вы устанавливаете ширину и высоту объекта рисования равными нулю.

Если вы хотите, чтобы изображение было размером 30x, 30y с шириной и высотой 30, тогда вызовите setBounds(30, 30, 60, 60) .

Также я бы вызвал это в onLayout методе, а не в onDraw .