Android tv 动画效果faq (放大动画 与ScrollView滚动照成 页面漂移交错)

最近在捣腾android tv上的动画,之所以说是Android tv 上的动画是因为 Android 盒子的性能普遍会比手机差几个档次。价格也是差了n倍数。所以一些手机上不会出现的问题在盒子上就容易出现。


问题1

Android 设备默认的动画刷新frame率是10ms 但是很多设备都是大于10ms的比如说米四是20ms左右,而乐视盒子是33ms左右。有些盒子是不支持动画的,就是动画 start后 立马就end 了。那么问题来了,普通的视图是没问题的帧刷新率高点低点,但是当有srcoll时,如果同时执行就会出现视图错位,在scroll的同时动画执行了放大缩小或者移动,这时就会错位漂移。


问题2

其实是同一个问题。在viewpager 上下翻页时的  内部view元素的动画会造成漂移。

都是应为scroll 造成的


解决思路:

让scroll 完成了再执行动画,先mark下后续进行补充


问题3,:ScrollView 里放LinearLayout 子view 在ScrollView 滚动时,放大的动画也执行了,如果两个同时执行会导致页面的交叉漂移。

解决方法是 让ScrollView 先滚动滚完 再执行动画  就不会飘

思路1、当获取到焦点时稍微延时一会100ms 再放大(懒惰的做法,会造成ui反应慢一点,不是很舒服)

思路2、监听外部的ScrollView滚动停止了再放大,(实际效果也是有点慢)

监听ScrollView的停止,采用反射的方法参考:http://johnnyshieh.github.io/android/2015/07/17/scrollview-detect-scroll-stop/


思路3、自己重写LinearLayout 注册一个Scroller 滚动器,自己完成滚动效果,(结果比较理想)

自定义容器中实现Scroller参考该博客:http://ipjmc.iteye.com/category/167926

对于判断一个视图是不是在屏幕外参见偶写的坐标篇http://blog.csdn.net/lckj686/article/details/49687809

自己写Scroller的时候要注意一点,就是scroller 的滚动最后是调用的 view 的scrollTo方法,

mScroller.setFinalX(0);
scrollTo(0, 0);

但是两者不能混用, 比如直接调用了

scrollTo(0, 0);  getScrollX()就是0  但是
mScroller.getCurrX() 却没有同步。这样子会照成混乱,如果用了Scroller 尽量就都直接操作mSroller吧,如果有地方要直接操作scrollTo还是要补上
mScroller.setFinalX 不然会出问题。 这个还不容易发现


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值