gpt4 book ai didi

Android:如何在动画中保持纵横比

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:26 25 4
gpt4 key购买 nike

我在 ImageView 中运行的动画拒绝保持图像帧的纵横比。 SO 中的以下答案非常有用,但似乎对我不起作用: How to scale an Image in ImageView to keep the aspect ratio

代码如下:

private void startAnimation(){
mImageView.setAdjustViewBounds(true);
mImageView.setScaleType(ScaleType.CENTER);
mImageView.setBackgroundResource(R.anim.my_animation);

AnimationDrawable frameAnimation = (AnimationDrawable) mImageView.getBackground();

// Start the animation (looped playback by default).
frameAnimation.start();
}

R.anim.my_animation 只是一个动画列表:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/selected"
android:oneshot="false">
<item
android:drawable="@drawable/photo_1"
android:duration="100" />
<item
android:drawable="@drawable/photo__2"
android:duration="100" />
... and so on...
</animation-list>

最佳答案

不是在 imageview 的背景中设置可绘制动画,而是使用 src 将其设置在前台并让动画在那里播放。如果您为 imageview 设置了合适的缩放类型,则帧动画中的所有图像都将按完整的纵横比调整大小。

    private void startAnimation(){
mImageView.setAdjustViewBounds(true);
mImageView.setScaleType(ScaleType.CENTER);
mImageView.setImageDrawable(getResources().getDrawable(R.anim.my_animation));

AnimationDrawable frameAnimation = (AnimationDrawable) mImageView.getDrawable();

// Start the animation (looped playback by default).
frameAnimation.start();
}

关于Android:如何在动画中保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com