【问题标题】:GIF loaded in a Service using Glide only shows first frames使用 Glide 在服务中加载的 GIF 仅显示第一帧
【发布时间】:2016-08-27 20:43:56
【问题描述】:

我有一个应用程序,当用户打开指向图像的链接而不是打开浏览器时,会在 Service 内创建一个浮动的 ImageView 并显示在所有其他应用程序上方(这需要 android.permission.SYSTEM_ALERT_WINDOW允许)。这是应用程序的链接:Tappic

我想使用 Glide 添加动画 GIF 支持(我也尝试过其他库,但结果始终相同)但只显示 GIF 的第一帧,然后停止。

这是我在Service 中加载图像的代码:

@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;
}

您可以查看video hosted in Google Drive 显示问题所在。

如您所见,如果我在屏幕上移动视图,它确实有效。这是处理移动的代码(tooltipContainer 是包含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 动画的问题出在哪里。

【问题讨论】:

    标签: android service imageview gif android-glide


    【解决方案1】:

    我在个人项目中实际测试了 Glide、Picasso 和 Fresco 的 GIF 动画。对我来说,Glide 可能有 50% 的时间正确加载了动画 GIF。很多时候,它还添加了一些图像伪影和/或跳帧。

    在这三者中,Fresco 实际上完美地处理了动画 GIF - 加载时间快、堆内存开销低,而且我还没有看到任何工件。试试 Fresco,可能是 Glide 无法正确显示您的 GIF。

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 2019-03-02
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多