我的应用程序登录部分有一个简单的动画片段转换--参见anim.xml。片段有来自xml可绘图的背景设置,除非我用全高清显示器在智能手机上测试,否则一切都很好。过渡突然变得滞后。有人知道是什么导致的吗?两个背景都有1080*1920分辨率。
anim.xml -动画示例(其中有4个用于进出双方的动画)
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%"
android:toXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="250"/>
</set>发布于 2018-03-12 12:06:32
几年的经验后-把你的形象在可绘制-结核
nodpi
这些都是与密度无关的资源。无论当前屏幕的密度如何,系统都不会缩放使用此限定符标记的资源。
发布于 2015-08-06 13:02:22
在我看来,你似乎有一个性能问题(可能与GPU,也许你有透支)。我不知道是什么原因,但有很多工具,可以帮助你更好地了解正在发生的事情。看看这篇文章http://www.curious-creature.com/docs/android-performance-case-study-1.html
此外,android性能模式视频可能会有所帮助。我强烈建议观看这些节目:
工具配置图形处理器渲染https://www.youtube.com/watch?v=VzYkVL1n4M8
透支https://www.youtube.com/watch?v=T52v50r-JfE
发布于 2015-08-06 12:37:54
嗯,经过一段时间(很长时间)来解决这个问题,我问题的唯一解决办法是在片段处理之前将背景图像更改为一些低res图像,并检查动画的末尾将其更改为高res图像。丑陋但至少起作用了。
虽然如果你在未来走这条路,希望在检测动画结束时会遇到一些麻烦。片段有onCreateAnimation方法,您可以添加AnimationListener,它有检测动画的开始、重复和结束的方法,但是它有错误的行为来检测动画的结束。回调是在动画结束之前触发的,这使得您的片段事务延迟,就像它即将结束一样(在我的例子中,它是最后10个像素左右)。
以一种非常丑陋的方式解决了这个问题--在动画结束时用10毫秒实现了一个CountDownTimer,并在定时器结束后将背景转换为高分辨率。
而且,片段的onCreateAnimation文档很少,所以您将不知道它的参数是什么,我发现这个亚洲网页帮助我理解了它。
http://y-anz-m.blogspot.cz/2013/05/support-package-fragmenttransaction.html
无论如何,我不知道FragmentTransaction的背景是如何工作的,但是感谢谷歌如此出色地实现了FragmentTransactions和AnimationListeners。
https://stackoverflow.com/questions/31810802
复制相似问题