Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AnimationDrawable用于具有各种大小的可绘制对象的动画列表?_Android_Android Animation - Fatal编程技术网

Android AnimationDrawable用于具有各种大小的可绘制对象的动画列表?

Android AnimationDrawable用于具有各种大小的可绘制对象的动画列表?,android,android-animation,Android,Android Animation,我有一个动画列表,由大小(稍微)不同的图像组成。我有一个ImageView,其中layout\u width和layout\u height设置为wrap\u content。我将动画列表设置为我的ImageView的内容,并按如下方式启动动画: AnimationDrawable my_animation_list = (AnimationDrawable)getResources().getDrawable( R.drawable.my_animation_list); myIma

我有一个动画列表,由大小(稍微)不同的图像组成。我有一个
ImageView
,其中
layout\u width
layout\u height
设置为
wrap\u content
。我将动画列表设置为我的
ImageView
的内容,并按如下方式启动动画:

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

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

我需要并且期望
ImageView
根据动画列表中的每个帧/图像调整其高度和宽度。相反,它看起来像是
ImageView
获取动画列表中第一帧的高度和宽度,然后缩放动画列表中的所有帧以适应此初始高度和宽度。任何人都知道我如何获得一个由各种大小的图像组成的
AnimationDrawable
(动画列表)来使用
ImageView
,甚至是一个变通方法?。

这不是最有趣的事情,但是你可以将位图包装起来,使其大小相同。自行修复位图可能更容易。我还没有看AnimationDrawable的代码,所以可能有更好的方法…

我最后做的是从我的
动画列表中创建我的
AnimationDrawable
,如下所示

// 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);
myImageView.setImageDrawable(my_animation_list.getFrame(myCurrentFrameIndex));
myCurrentFrameIndex++;
。。。但是,我现在做的不是将此
AnimationDrawable
分配给我的
ImageView
然后启动它(如我的问题中所述),而是手动将动画列表中的一个帧分配给我的
ImageView
,如下所示

// 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);
myImageView.setImageDrawable(my_animation_list.getFrame(myCurrentFrameIndex));
myCurrentFrameIndex++;
。。。我使用
处理程序
发送/接收/处理连续的
消息
实例来更新显示的帧,确定每个帧的持续时间,如下所示:

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

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