2

私のアプリケーションには、アプリの初期ロード用の回転ホイールがあります。Android 3.0ハニカムまで正常に動作します。しかし、ICS 4.0 では壊れています。シンプルな糸車アニメーションです。ICS では、このホイールは中心点ではなく円周に近い点を中心に回転しています。これにより、一貫して回転するホイールではなく、揺れ動くホイールのような視覚的印象を与えます。ここにコードがあります

レイアウト:

<ImageView 
            android:id="@+id/spinner"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:src="@drawable/spinner_white_48"
            android:layout_centerHorizontal="true"
            android:layout_alignParentTop="true"
        />

spinner_animation.xml

    <rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%" 
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:duration="1200">

    </rotate>

Java ファイル (アクティビティ)

Animation rotateSpinner = AnimationUtils.loadAnimation(this,R.anim.spinner_animation);
rotateSpinner.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) { 
            } 
            @Override
            public void onAnimationRepeat(Animation animation) { 
            }
            @Override
            public void onAnimationEnd(Animation animation) {
            }
        }); 
 findViewById(R.id.spinner).startAnimation(rotateSpinner); 

注: アプリは 4.0.2 (Samsung Galaxy) でも起動しません。しかし、この歪んだアニメーションは 4.0.3 アプリで正常に動作します (Nexus S)。

どんな助けでも大歓迎です。前もって感謝します

4

4 に答える 4

1

「ぐらつき」とは、中心点以外の何かを中心に回転しているように見える場合、これは既知のバグです。

于 2012-01-05T19:52:59.923 に答える
1

より良い修正があるまで、次を使用できます。

RotateAnimation rotation;
if(Integer.parseInt(Build.VERSION.SDK) >=15){
    rotation = new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,0.25f,Animation.RELATIVE_TO_SELF,0.25f);
}else{
    rotation = new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
}
于 2012-02-27T07:14:36.283 に答える
0

これをマニフェストに追加する必要があります。

<supports-screens android:resizeable="true"
                  android:smallScreens="true"
                  android:normalScreens="true"
                  android:largeScreens="true"
                  android:anyDensity="true"/>
于 2012-03-28T11:40:21.833 に答える
0

レイアウト設定を確認してください。同じビューを単純な LinearLayout にドロップするだけで、再び問題なく動作する気がします。あなたは RelativeLayout にいるようで、layout_centerHorizo​​ntal または layout_alignParentTop があなたに悲しみを与えているように感じます。

于 2012-01-31T22:27:50.223 に答える