android imageview scaletype不适用于AnimationDrawable

时间:2014-12-10 07:18:35

标签: android android-layout imageview android-animation

我有一个图像视图填满我的整个屏幕,我从url下载图像到我的SD卡,我使用AnimationDrawable在imageview中将这些图像显示为幻灯片。但是,不过我尝试我的图像会失去它们的宽高比,图像会显得拉长。我已经为我的imageview尝试了所有scaletype,但没有用。这是我的代码:

    AnimationDrawable animation = new AnimationDrawable();
    File cacheDir = AlRimal.getDataFolder(Main_Load.this);
    File cacheFile = new File(cacheDir, "file_1.jpg");
    Drawable d = Drawable.createFromPath(cacheFile.getPath());
    Bitmap bitmap = BitmapFactory.decodeFile(cacheFile.getPath());
    animation.addFrame(d, 5000);
    animation.addFrame(d, 5000);
    animation.addFrame(d, 5000);
    animation.setOneShot(false);
    animation.setExitFadeDuration(500);
    animation.setEnterFadeDuration(500);
    animationImg.setScaleType(ScaleType.FIT_CENTER);//All possibilities have been tried
    animationImg.setBackgroundDrawable(animation);
    animation.start();

我的图像重新分配为:2048 * 1536

2 个答案:

答案 0 :(得分:5)

ScaleType未设置,因为ImageView中的图片被设置为背景。当我将其更改为源时,它就有效了。

答案 1 :(得分:3)

而不是

animationImg.setBackgroundDrawable(animation);

尝试使用

animationImg.setImageDrawable(animation);