java如何优化动画?
我有一个collapsingToolbarLayout
,我想制作一些动画,同时用户展开/折叠视图。我在addOnOffsetChangedListener
中添加了一些动画,但问题是动画不平滑。例如,在崩溃时imageview
必须向外扩展,然后是alpha。而且它不需要改变它的位置,所以我使用了translationY
。好的,让我展示我的代码。我在用dataBinding
binding.appbar.addOnOffsetChangedListener((abLayout, offset) -> {
// Scale out the image and alpha.
float scale = 1 - ((float) Math.abs(offset)/abLayout.getTotalScrollRange());
binding.image.setTranslationY(Math.abs(offset));
binding.image.animate().scaleX(scale).scaleY(scale).alpha(scale);
if (Math.abs(offset) == abLayout.getTotalScrollRange()) {
binding.labelNewsTitleToolbar.setVisibility(View.VISIBLE);
binding.labelNewsTitle.setVisibility(View.INVISIBLE);
} else if (Math.abs(offset) < abLayout.getTotalScrollRange()) {
binding.labelNewsTitle.setVisibility(View.VISIBLE);
binding.labelNewsTitleToolbar.setVisibility(View.INVISIBLE);
}
if (offset == 0)
binding.image.animate().scaleX(1.0f).scaleY(1.0f).alpha(1.0f);
});
我如何优化它以使其更平滑?当我更快地折叠视图时,图像无法及时设置动画
# 1 楼答案
为什么不直接更改
alpha
和scale
值(无动画)?你的scale
变量取决于偏移量,它从0变为1,所以我认为一切看起来都很顺利