0

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

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

如果有帮助,这是我获取图像的纵横高度和宽度的计算

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

2 回答 2

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;
            }
        });
    }
});
于 2015-05-06T07:54:45.877 回答
0

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

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

Ion.with(yourImageView).load("yourAssetFolder/yourGifImage.gif")
于 2015-05-06T05:35:57.700 回答