【发布时间】:2012-09-12 15:21:51
【问题描述】:
我有一个简单的任务:当发生某些事情(比如按下按钮)时,淡出屏幕(+ 其他操作,但现在没关系)。 我的 minSDKVersion 是 11。我是这样做的:活动布局包含一个视图:
<View
android:id="@+id/bgFadingView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0"
android:background="@android:color/black" />
我淡出屏幕的方法如下:
protected void fadeBGView(boolean fadeIn)
{
ObjectAnimator animator = ObjectAnimator.ofFloat(bgFadingView, "alpha", fadeIn ? 0.75f : 0f); //bgFadingView is initialized via findViewById(R.id.bgFadingView);
animator.setDuration(1000);
animator.start();
}
换句话说,我有黑色视图,它占据了整个屏幕,当我需要淡入时,我将视图的 alpha 从 0 更改为 0.75。
问题在于它在帧速率不佳的情况下工作......我看到逐帧褪色的动画 - 它以大约 15fps 的速度工作。我究竟做错了什么? Android 系统淡入淡出工作得更加顺畅 - 我想获得相同的结果或关闭。怎么做?
【问题讨论】:
-
如果您真的打算以 API 11+ 为目标,您可以启用硬件加速。系统动画使用它。这很可能会解决问题。