2011-08-02 35 views
2

我爲Android寫了一個suduko遊戲,如果用戶插入錯誤的數字,並且想要設置動畫效果。 但我不知道如何做到這一點?問題是,我有一個很大的旋鈕蓋住屏幕,然後用瓷磚線將這個矩形放在瓷磚中。現在我不知道如何動畫瓷磚。Android動畫

我可以解釋我的問題。

對不起,我的英語不好,和thaks答案)

回答

2

如果使用標準的意見,你可以看看tween animation,即定義一組動畫,從資源加載它們,並將它們連接到您的意見/啓動動畫。

看一看the spaceship jump example這裏。

如果你自定義繪製,恐怕你也需要做自定義動畫。

+1

我嘗試編寫自定義動畫,但無法解決問題。 我有一個矩形覆蓋孔篩,我不能動態顯示矩形的只是其中的一部分(( –

+0

http://www.vogella.com/tutorials/AndroidAnimation/article.html遵循這也 – hitesh141

7

你不應該引起你的板子那樣。我建議將一個tile作爲View的子類實現,然後您可以單獨爲每個動畫製作動畫。

試試這個看動畫是如何工作的:

瓷磚類

public class Tile extends View { 

private RectF mRect; 
private Paint mPaint; 

public Tile(Context context) { 
     super(context); 
     init(); 
} 

public Tile(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
} 

public Tile(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(); 
} 

private void init(){ 
     mRect = new RectF(0, 0, 100, 100); 
     mPaint = new Paint(); 
     mPaint.setStyle(Paint.Style.STROKE); 
     mPaint.setColor(Color.BLUE); 
} 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawRect(mRect, mPaint); 
    } 
} 

主要活動

public class MainActivity extends Activity implements OnClickListener { 

private Tile mTile; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     LinearLayout layout = new LinearLayout(this); 
     layout.setBackgroundColor(Color.WHITE); 
     layout.setPadding(50, 50, 50, 50); 

     Button btn = new Button(this); 
     btn.setText("Click Me"); 
     btn.setOnClickListener(this); 
     layout.addView(btn); 

     mTile = new Tile(this); 
     layout.addView(mTile); 

     setContentView(layout); 
    } 

@Override 
public void onClick(View v) { 
    Animation scaleAnim = AnimationUtils.loadAnimation(this, R.anim.scale); 
    mTile.startAnimation(scaleAnim);  
} 
} 

動畫定義(該文件應該被命名爲scale.xml和放置呃目錄/res/anim

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false"> 
    <scale 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:fromXScale="1.0" 
     android:toXScale="2.0" 
     android:fromYScale="1.0" 
     android:toYScale="2.0" 
     android:fillAfter="false" 
     android:repeatCount="1" 
     android:repeatMode="reverse" 
     android:duration="700" /> 
</set> 

瞭解更多關於動畫here。 要讓你自己的動畫在這裏看看here

希望這讓你去。

+0

感謝回答) –

+0

使用Animator/AnimatorSet,動畫類是傳統代碼 – Lunatikul

1

與蜂窩的事情之前的動畫工作是一個真正的痛苦。我建議下載NineOldAndroids庫(http://nineoldandroids.com/)並將其用作導入,這樣您就可以在所有版本的Android(甚至高達1.0)上使用Honeycomb動畫API。