Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android旋转动画离轴_Android_Animation_Rotation_Android Animation_Axis - Fatal编程技术网

Android旋转动画离轴

Android旋转动画离轴,android,animation,rotation,android-animation,axis,Android,Animation,Rotation,Android Animation,Axis,大多数时候,我的雷达图像视图都是绕轴旋转的 但有时当页面重新加载或启动我的应用程序时,ImageView会在其容器的一角旋转 RotateCenter.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolat

大多数时候,我的雷达图像视图都是绕轴旋转的

但有时当页面重新加载或启动我的应用程序时,ImageView会在其容器的一角旋转

RotateCenter.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator">
    <rotate
        android:fromDegrees="0"
        android:toDegrees="359"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="2000"
        android:repeatCount="infinite"/>
</set>
radar.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:paddingTop="200dp">

    <ImageView
        android:id="@+id/looking_host_radar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"/>

    <TextView
        font="ProximaNovaRegular"
        android:id="@+id/looking_for_party_text"
        android:textSize="18sp"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/looking_host_radar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/accent_color_light"
        android:text="@string/looking_for_party"/>
</RelativeLayout>

radar_layout.xml

 <RelativeLayout
        android:id="@+id/radar_relative_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/btn_radar_home_settings"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/shaped_button_height"
            android:gravity="center"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"/>

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true">
            <include layout="@layout/radar"/>
        </FrameLayout>

    </RelativeLayout>

我通过将雷达设置为100 dp的大小来修复它

我也可以这么做

lookingHostRadar.getViewTreeObserver().addOnGlobaLayoutListener() { 
​
    @Override
    public void onGlobalLayout() {
        lookingHostRadar.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        lookingHostRadar.startAnimation(rotateRadarAnimationLooking);
    }   
}
lookingHostRadar.getViewTreeObserver().addOnGlobaLayoutListener() { 
​
    @Override
    public void onGlobalLayout() {
        lookingHostRadar.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        lookingHostRadar.startAnimation(rotateRadarAnimationLooking);
    }   
}