2012-04-16 17 views
1

私はShapeDrawableクラスに基づいてアニメーションDrawableを作成しようとしていますが、そのコンテンツを描画するための特定のShapeクラスを使用しています。AndroidのアニメーションのShapeDrawable

オンデマンドでは、Shapeベースのクラスのいくつかの値を変更する必要があります。これらの値(あるスケールでは温度変化のようなもの)によって変更する必要があります。すべてがAndroid 2.1用に書かれています。私が見つけたのは、ShapeDrawableinvalidateSelf()の呼び出しがうまくいくはずですが、私はDrawable.Callbackを提供しなければなりません。

インターフェイスのinvalidateDrawable(Drawable who)の方法で質問する必要がありますか?このようなアプローチを使用していくつかのサンプル:

class MyShapeDrawable extends ShapeDrawable implements Drawable.Callback 
{ 
    public void invalidateDrawable(Drawable who) { 
    } 

    public void scheduleDrawable(Drawable who, Runnable what, long when) { 
    } 

    public void unscheduleDrawable(Drawable who, Runnable what) { 
    } 
} 

私はと呼ばれる私のShapeDrawableベースクラスinvalidateDrawable()メソッドのinvalidateSelf()を呼び出すが、何がこの方法で行われるべき? Shapeを強制的に更新して再描画する方法

答えて

0

これはView.java用アンドロイドのソースの実装です...

public void invalidateDrawable(Drawable drawable) { 
    if (verifyDrawable(drawable)) { 
     final Rect dirty = drawable.getBounds(); 
     final int scrollX = mScrollX; 
     final int scrollY = mScrollY; 

     invalidate(dirty.left + scrollX, dirty.top + scrollY, 
       dirty.right + scrollX, dirty.bottom + scrollY); 
    } 
} 
+0

より詳細にあなたの答えを説明してください。 –

関連する問題