2010-12-05 19 views
49

私はAndroidコードでいくつかの掘り出しを行い、不確定の進行状況バーでの使用を見ました。このタグを自分の引き出し可能を作成しようとした後:Androidアニメーション回転

<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/spinner_pia" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:framesCount="12" 
    android:frameDuration="100" /> 

私はエラーを取得する: 「パッケージ 『アンドロイド』の属性 『frameDuration』が見つかりませんリソース識別子」 - frameDurationがプライベート属性であることを意味しています。 この「アニメーション回転」機能を使用する方法はありますか?

私の仕事は、システムのデフォルトの不確定進行状況バーを置き換えることです。私はできるだけ少ないコードでそれをやりたいと思っています(できるだけ少ない属性を変更するだけです)。そのオブジェクトへの「描画可能/ pia_sivuvator @」

android:indeterminateOnly="true" 
android:indeterminateBehavior="cycle" 
android:indeterminateDuration="3500" 
android:indeterminateDrawable="@drawable/pia_sivuvator" 

とポイントを、彼らが来るが、私はそれらのプライベート属性にこだわっているとエレガントとしての私の仕事を作るただろう:設定のProgressBarビューを使用して 、。

help?

+1

を同じ問題を抱えています。パラメータ( 'framesCount'と' frameDuration')を除外することはあまり役に立ちません。アニメーションは機能しますが、私にとってはうまく見えません(アニメーションが滑らかではない、フレームレートが低いなど)。 この問題に関する問題を作成しました。http://code.google.com/p/android/issues/detail?id=19248 –

答えて

57

まったく同じ問題が発生しました。それらのパラメータ(framesCountとframeDuration)を除外することができ、それはあなたのために働くかもしれません。私はそれらを除外してみましたが、アニメーションはうまくいきましたが、設定していた幅と高さは尊重されていなかったので、単純な回転アニメーションとImageViewを作成して適用しました。

その後
<?xml version="1.0" encoding="utf-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:startOffset="0" 
/> 

あなたは自分のアニメーション、設定繰り返し回数を膨らませると、ビューから起動

Animation rotation = AnimationUtils.loadAnimation(this, R.anim.clockwise_rotation); 
rotation.setRepeatCount(Animation.INFINITE); 
myView.startAnimation(rotation); 
+24

ハードコードの代わりにxmlに 'android:repeatCount =" infinite "'を使用します。必要ならば – pleerock

+0

framesCountパラメータを使用するhttp://stackoverflow.com/questions/3760381/rotating-image-animation-list-or-animated-rotate-android/14996762#14996762 – vokilam

6

私にはわからない:ここでは、アニメーションファイル(RES /アニメーション/ clockwise_rotation.xml)がありますどのように私的な属性を回避するには、私は同じ問題があります。ところで

あなたはプログレスバーのこれらの属性を変更する場合:

android:indeterminateOnly="true" 
android:indeterminateBehavior="cycle" 
android:indeterminateDuration="3500" 
android:indeterminateDrawable="@drawable/pia_sivuvator" 

あなたはvalues/styles.xmlファイルに標準のアンドロイド1を拡張するプログレスバーのスタイルを定義するスタイルフレームワークと簡単にそれを行うことができます:

<style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> 
     <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> 
</style> 

xmlレイアウトファイルの進行状況バーに適用します。

... 
<ProgressBar 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="@style/YourProgressBarStyle"/> 
... 
5

この描画可能なxmlを使用してこれを解決しました。それが唯一のAndroidの新しいバージョンにスムーズにあるように見えますが:

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/spinner_pia" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="1080" /> 
+0

このRotateDrawableから何をするか説明してください。 http://stackoverflow.com/questions/5872257/how-do-i-use-rotatedrawable – rds

7

を助ける回転アニメーションの簡単な説明はこれを試していますアニメーション(XML設定だけでなく、より多くのコードが必要)、描画可能なリソースとしてlayer-listを使用してください。 layer-listは、animated-rotateよりも流動的です。もちろんその後

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <rotate 
     android:drawable="@drawable/spinner_loading" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:fromDegrees="0" 
     android:toDegrees="360"/> 
</item> 
</layer-list> 

マリオLenciが書いたようなスタイルでそれを使用します。

<style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> 
    <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> 
</style> 
+3

こんにちは、どうやって回転させるのですか?私はImageViewを持っているだけで、まだdrawableを表示しています... –

関連する問題