-1

ロック画面を作成しています。バッテリー充電を表示するフレームアニメーションを表示したいのですが、アニメーションが表示されず、すべてのログが印刷されます。ハンドラーを使用してアニメーションを開始しようとしましたが、役に立ちません。私のコードは非常に長いので、以下に関連するコードを追加します。

作成時のコード:

//battery charging animation
    animation = new AnimationDrawable();
    animation.addFrame(getResources().getDrawable(R.drawable.charge5), 30);
    animation.addFrame(getResources().getDrawable(R.drawable.charge4), 30);
    animation.addFrame(getResources().getDrawable(R.drawable.charge3), 30);
    animation.addFrame(getResources().getDrawable(R.drawable.charge2), 30);
    animation.addFrame(getResources().getDrawable(R.drawable.charge1), 30);
    animation.setOneShot(false);//animation plays again
    battery_ImgView.setBackgroundDrawable(animation)

バッテリーの状態をチェックする機能のコード

public  void SetBatteryIcon(View paramView, int paramInt,
        int plugged, int m) {

    int i=0;
    int p = m / 4;
    if (plugged == 0) {
        if (paramInt <= p)
            i = R.drawable.battery4;// 1 line
        else if (paramInt <= 2 * p && paramInt > p)
            i = R.drawable.battery3;// 2 line
        else if (paramInt <= 3 * p && paramInt > 2 * p)
            i = R.drawable.battery2;// 3line
        else
            i = R.drawable.battery1;// 4 line full 
    } else {//  charging

        Log.i("charging","anim");
        animation.start();


    }//else
    paramView.setBackgroundResource(i);
}
4

1 に答える 1

1

アニメーションを開始するには、以下のコードを使用します。

AnimationDrawable mAnimDrawable=(AnimationDrawable)battery_ImgView.getBackground();
mAnimDrawable.start();

それがうまくいくかどうか教えてください。

于 2013-04-22T11:23:59.283 に答える