使用alpha后,ImageView后面的RotateAnimation滞后

时间:2015-01-03 13:08:32

标签: android

我有下一个RotateAnimation

private RotateAnimation createImageRotatingAnimationInfinite(ImageView imageView) {
    RotateAnimation animation = new RotateAnimation(0f, 360f, imageView.getWidth() / 2, imageView.getHeight() / 2);
    animation.setFillAfter(true);
    animation.setInterpolator(new LinearInterpolator());
    animation.setRepeatCount(Animation.INFINITE);
    animation.setDuration(ROTATE_DURATION);
    return animation;
}

接下来的布局:

...
<!--ROTATING BACKGROUND-->
<com.bipfun.nightlight.customviews.SquareHImageView
    android:id="@+id/a_main_rotating_bckgnd"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:scaleType="centerCrop"
    android:src="@drawable/rotating_bckgnd_default"/>

<!--LIGHT BACKGROUND-->
<ImageView
    android:id="@+id/a_main_light_bckgnd"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:alpha="0"
    android:scaleType="centerCrop"
    android:src="@drawable/bckgnd_stars_light"/>
...

我将动画设置为a_main_rotating_bckgnd,当我在屏幕上向上/向下移动查找器时,我会修改alpha的{​​{1}}值。问题是任何a_main_light_bckgnd,它背后的旋转背景都像疯了一样。它发生在许多设备上,如HTC One,Samsung S3,Samsung Note II。

API 有所不同,分别是4.1.2,4.3和4.4.2。它不像其他具有类似API的设备那样是API。他们都有 alpha > 0 屏幕,但我已尝试使用小图片作为背景,但它们仍然滞后。

我似乎无法解决这个问题。我需要一个前面的图像,因为它需要是一个位图。我还有一个简单的xhdpi我将背景颜色设置为类似View(对于alpha来说是50),但这似乎并不影响旋转动画。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

问题是所有3台设备都使用xhdpi drawables。错误地我删除了Fragment的背景,我发现它不再滞后。所以我改变了一切。移动了hdpi - &gt;中的图片xhdpixhdpi - &gt; xxhdpi之后一切顺利。它似乎不能同时在屏幕上处理太多大图像。