[ERLEDIGT] GIF in WebView mehrmals abspielen

  • 2 Antworten
  • Letztes Antwortdatum
FalkeNr1

FalkeNr1

Neues Mitglied
3
Hi,
mein Ziel ist es ein GIF (Ein Durchgang, also keine Endlosschleife) in einem WebView immer dann abzuspielen, wenn der Nutzer auf das WebView klickt.
Das Ganze beginnt mit einem PNG, welches im WebView geladen wird. Beim ersten Klicken auf das WebView wird dann auch das GIF abgespielt. Ab dem zweiten Klicken tut sich jedoch nichts mehr.

Code:
Code:
final WebView webView = (WebView)findViewById(R.id.webViewTab1);
        webView.setBackgroundColor(Color.TRANSPARENT);
        webView.loadDataWithBaseURL("file:///android_res/drawable/", "<img align='middle' src='pic.png' width='100%' />", "text/html", "utf-8", null);
        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_DOWN) {
                    webView.loadDataWithBaseURL("file:///android_res/drawable/", "<img align='middle' src='animation.gif' width='100%' />", "text/html", "utf-8", null);
                }
                return false;
            }
        });

Hat jemand ne Ahnung was der Fehler ist? Oder kann mir eine Alternative nennen?

Vielen Dank schon mal!

MfG
FalkeNr1
 
Hallo Falke,
der WebView hat bereits die Daten im Cache.

Versuche es mal mit .reload();

Wenn das nicht geht , dann musst du dir einen WebViewClient bauen und dort den reload forcieren
(z.b.mit Javascript)
 
  • Danke
Reaktionen: FalkeNr1
Viiielen Dank!
Mit clearCache() und reload() funktioniert es!

Code:
final WebView webView = (WebView)findViewById(R.id.webViewTab1);
        webView.setBackgroundColor(Color.TRANSPARENT);
        webView.loadDataWithBaseURL("file:///android_res/drawable/", "<img align='middle' src='pic.png' width='100%' />", "text/html", "utf-8", null);
        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_DOWN) {
                    webView.clearCache(true);
                    webView.reload();
                    webView.loadDataWithBaseURL("file:///android_res/drawable/", "<img align='middle' src='animation.gif' width='100%' />", "text/html", "utf-8", null);
                }
                return false;
            }
        });
 
  • Danke
Reaktionen: swa00
Zurück
Oben Unten