У меня тоже была эта проблема. Для чего это стоит, я наткнулся на обходной путь для моих целей. Кажется, что когда вы создаете AnimationDrawable программным способом, используя «new AnimationDrawable ()», он не будет учитывать scaleType ImageView. Однако, если вы используете ресурс .anim xml со списком фреймов внутри этого ссылочного ресурса, он примет размер первого изображения и масштабирует анимацию соответствующим образом в соответствии с scaleType вашего ImageView. Так как я пытаюсь загрузить изображения из папки ресурсов в мой AnimationDrawable, мне нужно было сделать это из кода. В итоге я сделал следующее:
В res / anim / empty.xml (где empty_slide - прозрачное изображение размера, который я буду использовать для остальной анимации):
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/empty_slide" android:duration="0" />
</animation-list>
Тогда в моем Java-файле:
imageView.setImageResource(R.anim.empty);
AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getDrawable();
animationDrawable.addFrame(Drawable.createFromStream(context.getAssets().open(drawablePath), null),animationDuration);
// Add the rest of the frames
...
animationDrawable.start();
Я бы хотел услышать, если бы вы нашли лучший способ ...