アニメーションSOUI3.0模造法のアンドロイドを用いた補間

Androidシステムでは、補間されたアニメーション、アニメーション値、アニメーションプロパティ、フレームアニメーションがあります。

これはAnimateImgによって達成することができるSOUIでフレームアニメーションは、同様のアニメーション効果を必要とし、3.0の前にサポートされていない他のいくつかのアニメーションを制御のみ比較的高いコストを達成するためにタイマー自身によって達成することができます。

SOUI3.0は、プロパティ値がアニメーションアニメーションによって達成することができ、値補間アニメーションとアニメーションのサポートが追加されますので、特別な移植はありません。

この講義では、私は、補間アニメーションを話します。

Androidの開発経験の友人を持っている、あなたは、補間アニメーションAndroidのAlphaAnimation、TranslationAnimation、ScaleAnimation、RotateAnimation、AnimationSet 5つのクラスがあることを知っている必要があり、彼らは共通の基底クラスのアニメーションを共有しています。

3.0アニメーションはSOUIに移植されています。

SOUI補間アニメーションを再生するにはSWindowに、同様のアニメーションとAndroid、優れたXML定義によるアニメーション最初を使用して、アニメーションをロードし、そして。

AnimationSet下記の実施例に使用する方法を説明します。

1、アニメーションXMLの定義:

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< 設定のrepeatCount = " - 1" > 
  < アルファ期間= "500" fromAlpha = "1.0" toAlpha = "0.5" のrepeatCount = "1" REPEATMODE = "逆" /> 
  < 回転期間=" 500" startOffset = "1000" fromDegrees = "0" toDegreesを= "360" pivotX = "50%" pivotY = "50%" REPEATMODE =」/> 
  < 設定startOffset = "1500" > 
    < スケール持続時間= "500"   fromXScale = "1.0F" toXScale = "0.5" fromYScale = "1.0" toYScale = "0.5" のrepeatCount = "1" REPEATMODE = "逆" /> 
  </ セット> 
</ 設定>

デモ\ uires \ Animの\ rotate.xmlから上記のコード

このXMLはAnimationSetのRotateAnimation ScaleAnimationを含むAlphaAnimationが含まれているAnimationSetアニメーション、およびその他を説明しています。

まず、最外層は、セットのrepeatCount -1の属性値は、無期限に反復の代表があることがわかります。(ここではAndroidのセットがrepeatCountにはサポートしていませんが、注意してください、しかし、AndroidのサポートREPEATMODE、AndroidのREPEATMODEは、実際に設定されますが、その子のアニメーションに使用されていません)

その後、我々はそれがアニメーションの実行時間に代わってのrepeatCount = 1、2を持っていることに注意し、REPEATMODE =は最初のアルファからアニメーションを代表して、逆に、その後、必要な500ミリ秒を行うためにここに最初のアルファアニメーション、期間=アニメーションの500代表の点に注意してください。第2の反復が0.5から1.0になる0.5、1.0。

その後、我々は第二回転アニメーションのノートを取る、それはstartOffset = 1000以上で、1000年には、映画のちょうど総実行時間は、アルファアニメーションが完了した後に、この回転アニメーションが再び実行されていること、です。fromDegree、toDegree、pivotXは、pivotYは、アニメーションが独占的財産である回転コードの意味を参照してください。ここでは、この属性を指定しない場合、システムは、この補間が加速し、再び減速される、デフォルトのAccelerateDecelerate補間を使用して、補間属性補間コード補間タイプに注意してください。上記の例は、線形補間に調整しました。

最後に、その3番目のサブアニメーションを見て、それはまた、設定されたアニメーションです。ただアニメーションの一端を回転させ、最初からそれを1500MS。これは、最初の増幅後、50%、および100%まで減少のみ1つのスケールアニメーションを設定します。

時間的に連続する3つの段階に全体アニメーション処理、総実行2500MS。

もちろん、これらのサブアニメーションを同期させることができ、継続的ではないかもしれません。

2、ローディングアニメーション:

このすべての最初のSOUIおよび他のすべてのリソース、などは、uires XMLカタログの下に配置する必要があり、かつ適切uires.idxファイル内のファイルを参照します。

< アニメーション> 
    < ファイル= "愛" パス= "アニメーション\ love.xml" /> 
    < ファイル= "slide_show" パス= "アニメーション\ slide_show.xml" /> 
    < ファイル= "slide_hide" パス= "アニメーション\ slide_hide.xml」/> 
    < ファイル= "回転" パス= "アニメーション\ rotate.xml" /> 
  </ アニメーション>

=が回転姓はこのアニメーションのリソースです。

設定されたリソースは、あなたがコードでアニメーションを参照することができます。

無効CMainDlg :: InitSoui3Animation()
{ 
    SWindow * PWND = FindChildByName(L " img_soui " )。
    もし(PWND)
    { 
        IAnimation * PANI = SApplication :: getSingletonPtr() - > LoadAnimation(L " アニメーション:回転" )。
        もし(PANI)
        { 
            PWND - > SetAnimation(PANI)。
            PANI - > リリース(); 
        } 
    } 
}

アニメーションをロードするSAppliation :: LoadAnimationことで。

3、SWindowにこのアニメーションが再生されます。上記のコードはpWnd-> SetAnimation、アニメーションはすぐに再生されますので注意してください。SetAnimationはので、ここでまた、リソースがアニメーションリリースメモリを使用することはできませんことを保証するために、()>リリースをpAni-を呼び出す必要があり、SWindowこのIAnimation内に保持されます。あなたがアニメーションの遅延をプレイしたい場合は、設定するためにpAni-> SetStartOffset()を呼び出すことができます。

 

図は、デモでは、このアニメーションの結果の実装です。

スクリーンショットのタイムラインは、正確な、特定の参照のデモではありません。

出発ソフトウェア2019年8月4日

 

おすすめ

転載: www.cnblogs.com/setoutsoft/p/11298908.html