1

我在设置也使用 RotateAnimation 类进行动画处理的图像的透明度(alpha)时遇到了一个奇怪的问题。在最高 16 (JB) 的所有 API 级别上,组合的淡入淡出和动画效果很好。在 API 16+ 上,淡化动画图像会重置动画。

我支持 API 级别 9 及更高级别。

直到 API 级别 16,我使用:

ivDial.setAlpha(iOverlayAlpha);

其中 iOverlayAlpha 是一个整数。到目前为止一切都很好。对于 API 级别 16+,不推荐使用 setAlpha(int),因此我必须使用:

ivDial.setImageAlpha(iOverlayAlpha);

但这会重置动画。我可以强制动画再次运行,但每次我调用 setImageAlpha(iOverlayAlpha) 时它都会被重置。

我可以使用:

ivDial.setImageAlpha(fOverlayAlpha);

其中 fOverlayAlpha 是一个浮点数。这可以正常工作,并且不会重置动画,但文档说“请注意,将 alpha 设置为半透明值 (0 < alpha < 1) 可能会对性能产生重大影响,尤其是对于大视图。”

我的视图不是很大,但我有很多同时可见,所以我不想用这个来破坏性能。

有人知道为什么在 JB 中使用 SetImageAlpha(int) 重置动画吗?

谢谢。

4

0 回答 0