У меня немного специфическая проблема, но, надеюсь, кто-то вмешается и поможет.
Я написал собственную анимацию масштабирования (публикуя runnables, которые изменяют целевой вид на обработчик в течение определенного промежутка времени), но когда я изменяю ширину и высоту вида, это как если бы я выполнил масштабирование вокруг (0 , 0) вида, тогда как я хочу увеличить его центр, поэтому я перемещаю вид, изменяя его поля соответственно. Дело в том, что когда шаг итерации масштабирования слишком мал (т. Е. 0,01f и менее), я должен изменить поля вида примерно на 1 пиксель, иногда только в одном из направлений, что делает его похожим на анимацию , Я не уверен в точной причине, но я попробовал следующие вещи:
1) Я попытался изменить поля, переопределив onLayout () моего родительского представления, которое будет вызываться при настройке layoutParams при масштабировании (я сделал это, чтобы избежать повторного вызова setLayoutParams () при перемещении, которое сейчас фактически не выполняется). не кажется вполне разумным, поскольку setLayoutParams () просто устанавливает некоторый флаг, который будет использоваться позже).
2) Я проверяю новые поля, чтобы установить их, чтобы они устанавливались только тогда, когда есть разница между новым и старым полями в направлениях X и Y.
3) Я пытался использовать view.offsetLeftAndRight () view.offsetTopAndBottom () вместо изменения параметров макета для перемещения представления, но это снова оказалось безрезультатно.
Есть предложения, что поможет?