当前位置: 首页 > 知识库问答 >
问题:

使用Glide加载到服务中的GIF仅显示第一帧

孙胜泫
2023-03-14

我有一个应用程序,当用户打开指向图像的链接时,不是打开浏览器,而是在服务中创建一个浮动的图像视图,并显示在所有其他应用程序之上(需要android.permission.SYSTEM\u ALERT\u窗口的权限)。这里是应用程序的链接:Tappic。

我想使用Glide添加动画GIF支持(我也尝试过其他库,但结果总是一样),但只显示GIF的前几帧,然后停止。

下面是我在服务中加载图像的代码:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    dataString = intent.getDataString();
    if (dataString != null)
        Glide.with(this).load(dataString).into(tooltipImage);

    return START_NOT_STICKY;
}

您可以查看托管在Google Drive中的视频,显示问题所在。

如您所见,如果我在屏幕上移动View,它确实有效。这是处理移动的代码(tools tipContainer是包含ImageView的布局):

tooltipImage.setOnTouchListener(new View.OnTouchListener() {

    private int initialX;
    private int initialY;
    private float initialTouchX;
    private float initialTouchY;

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        detector.onTouchEvent(motionEvent);
        switch (motionEvent.getAction()) {
            case MotionEvent.ACTION_DOWN:
                initialX = params.x;
                initialY = params.y;
                initialTouchX = motionEvent.getRawX();
                initialTouchY = motionEvent.getRawY();
                return true;
            case MotionEvent.ACTION_MOVE:
                params.x = initialX + (int) (motionEvent.getRawX() - initialTouchX);
                params.y = initialY + (int) (motionEvent.getRawY() - initialTouchY);
                windowManager.updateViewLayout(tooltipContainer, params);
                return true;
        }
        return false;
    }
});

我不知道GIF动画的问题在哪里。

共有1个答案

冀萧迟
2023-03-14

实际上,我在一个个人项目中测试了Glide、毕加索和Fresco的动画GIF。Glide在50%的时间里正确加载了动画GIF。很多时候,它还添加了一些图像瑕疵和/或跳过的帧。

在这三个例子中,Fresco实际上在动画GIF中表现完美——加载时间快,堆内存开销低,我还没有看到任何瑕疵。给Fresco一个镜头,可能是Glide无法正确显示GIF。

 类似资料:
  • 我第一次使用Glide在ImageView中显示GIF。我已经按照几个站点的方式对其进行了编码。但它不起作用。我已经给出了以下所有代码:(如果我弄错了什么,请告诉我) 项目级build.gradle 应用程序级构建。gradle文件: activity_main.xml 活动Java代码: 单击“提交”按钮后,我没有看到GIF图像。

  • 我尝试在图像视图中显示GIF图像作为加载占位符-使用Glide Library: 我试图显示此文件 加载2.gif 但是得到这个错误: 错误:(54,86)错误:找不到符号方法asGif() 如何在imageView中使用Glide显示GIF文件?

  • 我正在使用Glide在我的中加载GIF。 图像来自服务器,具有高分辨率和大量帧。 我注意到,一旦加载和播放GIF,内存使用率很高,可能导致内存不足。 我尝试了以下Glide方法(),但内存使用率没有改变。 Glide中还有其他可以使用的方法吗?

  • 我正在尝试使用Glide库将gif加载到ImageView中。Gif图像位于Raw文件夹中。代码如下: 但它没有加载。我错过什么了吗?它没有给出失败的日志。

  • 我正在使用Glide在启动屏幕中加载GIF图像。GIF加载完成后,我想使用Intent打开下一个活动。 我尝试了以下代码, 和Glide版本:com.github.bumptech.Glide:Glide:3.7.0' 但是找不到任何帮助,请帮助解决这个问题。

  • 问题内容: 如何使用Glide库将位图加载到ImageView中?我想使用文本创建自定义图像,然后使用Glide将其加载到imageview中。 这是我用文本创建自定义位图的方法 But when i try to load this bitmap using glide i’m getting error 问题答案: @rookiedev是正确的, Glide中没有load(Bitmap)它,这