VectorDrawable: Как динамически изменить размер vectordrawable - PullRequest
0 голосов
/ 02 ноября 2018

Я использую пользовательское представление, в котором у меня есть прямоугольник, и мне нужно нарисовать VectorDrawable между границами. Мне нужно изменить размер vectorDrawable на ходу. Я уже использую холст для установки внешнего прямоугольника, поэтому я не могу создать другой холст, используя растровое изображение. Вот что я делаю внутри onDraw ():

canvas!!.drawRect(mRect, mRadius!!,mRadius!!, mPaint)
vectorDrawable.mutate()
vectorDrawable.setBounds(mRect)
vectorDrawable.draw(canvas)

Если я пытаюсь создать растровое изображение и создать новый объект холста:

var bmp = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), 
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888)
var can : Canvas = Canvas(bmp)

Тогда мой vectorDrawable не виден.

Пожалуйста, дайте мне знать лучший способ изменить размер вектора.

1 Ответ

0 голосов
/ 03 ноября 2018

VectorDrawable предназначен для раздувания из XML. Если вы решите пойти по этому пути, ConstraintLayout, вероятно, является лучшим вариантом. Ссылка ниже показывает, как это сделать для соотношений 1: 1 или 5: 4.

https://blog.stylingandroid.com/dynamic-vectordrawable-sizing/

Удачи!

...