0

サイズが (わずかに) 異なる画像で構成されるアニメーション リストがあります。そして、ImageViewwithlayout_widthlayout_heightset as がありwrap_contentます。アニメーション リストを my のコンテンツに設定し、ImageView次のようにアニメーションを開始します。

AnimationDrawable my_animation_list = (AnimationDrawable)getResources().getDrawable(
    R.drawable.my_animation_list);

myImageView.setImageDrawable(my_animation_list)
((AnimationDrawable)myImageView.getDrawable()).start();

ImageViewアニメーションリストの各フレーム/画像で高さと幅を調整する必要があり、期待しています。ImageView代わりに、がアニメーション リストの最初のフレームの高さと幅を取得し、アニメーション リストのすべてのフレームをスケーリングして、この初期の高さと幅に合わせているように見えます。AnimationDrawableさまざまなサイズの画像で構成される(アニメーションリスト)を取得してImageView、または回避策を使用する方法を知っている人はいますか?

4

2 に答える 2

1

私が最後にしたことは、次のように、以前のように自分AnimationDrawableから自分を作成することでしたanimation-list...

// declaration in activity
private AnimationDrawable my_animation_list;

// load animation list in onCreate() method of activity or elsewhere
my_animation_list = (AnimationDrawable)getResources().getDrawable(
    R.drawable.my_animation_list);

...ただし、これAnimationDrawableを自分に割り当ててからImageView開始するのではなく(私の質問のように)、次のように、アニメーションリストのフレームを手動で自分に割り当てImageViewます...

myImageView.setImageDrawable(my_animation_list.getFrame(myCurrentFrameIndex));
myCurrentFrameIndex++;

...そして、を使用しHandlerて連続するインスタンスを送信/受信/処理しMessageて、表示されているフレームを更新し、各フレームの期間を次のように決定します。

my_animation_list.getDuration(myCurrentFrameIndex);
于 2012-10-30T13:58:12.223 に答える
0

最も楽しい作業ではありませんが、ビットマップをInsetDrawablesでラップして同じサイズにすることができます。ビットマップ自体を修正する方がおそらく簡単です。私は AnimationDrawable のコードを見ていないので、もっと良い方法があるかもしれません...

于 2012-10-10T20:44:12.977 に答える