我已经编写了一个自定义缩放动画(发布runnables,可以在一定的时间内将目标视图更改为处理程序)但是当我更改视图的宽度和高度时,就好像我已经执行了缩放(0,0)视图,而我想围绕其中心缩放,所以我通过相应地改变其边距来移动视图.事情是,当缩放迭代步骤太小(即0.01f或更小)时,我必须改变视图的边距,例如1px,有时仅在一个方向上,这使得它看起来好像动画是微不足道的.我不确定确切的原因,但我尝试了以下事项:
1)我尝试通过覆盖我的父视图的onLayout()来更改边距,这将在缩放时设置layoutParams时进行调整(我这样做是为了避免在移动时第二次调用setLayoutParams(),这实际上现在似乎没有非常合理,因为setLayoutParams()只是设置了一些将在以后使用的标志.
2)我正在检查要设置的新边距,以便只有在X和Y方向上的新边距和旧边距之间存在差异时才设置它们.
3)我尝试使用vIEw.offsetleftAndRight()vIEw.offsettopAndBottom()而不是更改布局参数以移动视图,但它再次无济于事.
有什么建议可以解决这个问题吗?
解决方法 如果我没有正确找到你,你需要从视图中获取Bitmap缓存并手动绘制它.在这种情况下,将绘制没有毛刺的位图(如果打开位图过滤).您可以按以下步骤执行此 *** 作:
>获取视图缓存 – 通过VIEw.getDrawingCache或通过调用VIEw.draw函数
>隐藏视图
>获取当前系统时间 – SystemClock.elapsedRealtime(由于这个你可以计算动画进度)
>开始发布runnables以使屏幕无效并检查动画是否结束
>显示视图
可能它可以通过Android Animation类完成,但我不使用它,因为它非常有限.
总结以上是内存溢出为你收集整理的Android自定义缩放动画效果不佳全部内容,希望文章能够帮你解决Android自定义缩放动画效果不佳所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)