【发布时间】: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