2016-05-02 10 views
0

私は、ユーザがブラウザを開く代わりに画像を指すリンクを開くと、の内部にフローティングImageViewが作成され、アプリ(許可がandroid.permission.SYSTEM_ALERT_WINDOW必要)。アプリへのリンク:Tappicがあります。Glideを使ったサービスにロードされたGIFは、最初のフレームのみを表示します

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を表示することができます。

が表示されているように、画面を移動するとが表示されます。問題は、GIFアニメーションの仕事をしているところ私にはわからない

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

:ここでは運動を扱うコード(tooltipContainerImageView含むレイアウトされる)があります。

答えて

0

私は実際に、個人用プロジェクトでアニメーションGIFのためにGlide、Picasso、Frescoをテストしました。グライドは、アニメーションGIFを正しく読み込んでくれたかもしれません。何回も、画像アーティファクトやスキップされたフレームが追加されました。

Frescoは実際には、高速のロード時間、低ヒープメモリオーバーヘッドのアニメーションGIFで完璧に動作しましたが、まだアーティファクトは見ていません。フレスコに一発を与えてください。グライドがあなたのGIFを正しく表示できないかもしれません。

+0

まだ同じ:/ – Grender

関連する問題