如何在创建后更改 InsetDrawable Inset 值

How to Change InsetDrawable Inset value after creation

我定义了一个 InsetDrawable,我希望能够在运行时调整 inset 的值,而无需重新分配另一个 drawable。

这可能吗?或者唯一的方法是重新创建 InsetDrawable?

不可能,因为API不是public。 我遇到了和你一样的问题,但在我的例子中,我必须为插图设置动画,所以重新创建可绘制对象是一个非常昂贵的选择。

最后我复制了InsetDrawable的源码,添加了改变inset的方法

你可以去看看here。使用方法 setInsets() 更改插图。