如何在android中调整自定义高度和宽度的gif?

时间:2015-05-06 05:26:40

标签: android imageview gif ion

我正在使用Koush / Ion库将gif从互联网加载到imageview中,但我无法调整gif的大小调整,在调用resize函数时,gif仍然

所以我的问题是,有什么办法可以在android中调整gif的大小吗?

这是我的计算,如果有帮助,可以获得图像的高宽和宽度

final int newWidth = deviceWidth;
final int newHeight = (int) ((int) newWidth * (imageHeight / imageWidth));

2 个答案:

答案 0 :(得分:2)

我想我终于找到了解决方案, 首先使用FIT_XY缩放图像,然后设置' newHeight'作为图像视图的高度

imageView.setScaleType(ScaleType.FIT_XY);
imageView.getLayoutParams().height = newHeight; 

代码段

Ion.with(imageView)
    .animateGif(AnimateGifMode.ANIMATE)
    .load(imgUrl)
    .setCallback(new FutureCallback < ImageView > () {

    @SuppressLint("NewApi")
    @Override
    public void onCompleted(Exception arg0,
    ImageView arg1) {

        imageView.getViewTreeObserver().addOnPreDrawListener(
        new ViewTreeObserver.OnPreDrawListener() {
            public boolean onPreDraw() {

                imageView.getViewTreeObserver()
                    .removeOnPreDrawListener(this);

                imageView.setScaleType(ScaleType.FIT_XY);
                imageView.getLayoutParams().height = newHeight;

                return true;
            }
        });
    }
});

答案 1 :(得分:0)

你可以以编程方式在android中调整gif的大小。当你这样做时,gif没有动画,因为它变成了普通的Image。为了调整gif的大小并为其设置动画,我能给你的唯一建议就是使用在线调整大小的工具,比如

稍后将已调整大小的gif保存在assets文件夹中,然后使用您使用的Ion library调用该文件

Ion.with(yourImageView).load("yourAssetFolder/yourGifImage.gif")