当我将 Android 应用程序迁移到 4.4 时,我注意到一个非常奇怪的情况,突然,HUD 组件中的旋转动画开始闪烁并且不起作用。我正在尝试像这样旋转对象:
rotateAnimation = new RotateAnimation(180, 360, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation.setDuration(1000);
rotateAnimation.setRepeatCount(Animation.INFINITE);
rotateAnimation.setRepeatMode(Animation.RESTART);
and:
public static void rotate(final View view) {
if(view.getAnimation() != null) {
view.getAnimation().cancel();
view.clearAnimation();
}
view.setAnimation(rotateAnimation);
view.getAnimation().start();
}
上面的代码在用于任何其他非嵌套视图对象时工作得很好,但是当用于ImageView
包含在 include 标签中它根本不起作用。奇怪的是,在同一上下文中调用的同一对象上的其他动画可以正常工作。这是 4.4 的错误吗?我包括视图如下:
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/view_trip_hud"
android:layout_gravity="bottom"/>
HUD 组件本身如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:alpha="0.6"
android:background="@drawable/background_texture_dark"
tools:context=".app.ui.fragment.TripSummaryFragment"
android:gravity="center_vertical|left"
android:id="@+id/relativeLayoutHUDContainer">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="@dimen/ui_default_element_margin">
<ImageView
android:id="@+id/imageViewTrackingStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/status_preparing"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/textViewDriveQuality"
style="@style/HUDFont"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="@string/track_status_inactive"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</LinearLayout>
<view
android:id="@+id/linearLayoutHUDCurrentSpeed"
android:layout_width="wrap_content"
android:layout_height="40dp"
class="pl.com.infinitysoftware.carassistant.util.ui.HUDBlockLayout"
style="@style/HUDBlock"
android:layout_alignParentRight="true"
android:layout_marginLeft="@dimen/ui_min_element_margin">
<TextView
android:id="@+id/textViewCurrentSpeed"
style="@style/HUDFont"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="-,-Km/h"
android:clickable="false"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"/>
</view>
<view
class="pl.com.infinitysoftware.carassistant.util.ui.HUDBlockLayout"
style="@style/HUDBlock"
android:id="@+id/linearLayoutHUDCurrentDistance"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/linearLayoutHUDCurrentSpeed"
android:layout_marginLeft="@dimen/ui_min_element_margin">
<TextView
style="@style/HUDFont"
android:id="@+id/textViewCurrentDistance"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="25 Km"
android:clickable="false"
android:layout_gravity="center_vertical"
android:gravity="center_vertical" />
</view>
</RelativeLayout>