Blinkender Bildschirm bei Verwendung eine webview mit flash
Edit: ich habe eine demo apk, so dass Sie verstehen, was ich meine: http://cl.ly/3g0s1p030j243y0p3m2F
Für meine Anwendung möchte ich eine Art "Super-Power-Point" oder eine keynote (das commercial-team präsentieren wird, das Produkt an Ihre Kunden) mit allen Android Güte, gesten, etc... auf einem Android-tablet. Als Honeycomb ist noch nicht fertig und da braucht man vor März, wählen wir einen zufälligen Froyo Tablet (Archos 101), aber mein Problem ist für jedes tablet/Handy das ich versuchte.
Ich ein wirklich sehr gutes Programm, aber für einige Animationen während der Präsentation, der Kunde wollte mit den flash-Animationen. Da konnte ich nicht code-Animationen (sozusagen wenig Filme/animierte Grafiken), die leicht in Android und der Mangel an Zeit, das schien eine gute Idee zu sein.
So, nach einiger Suche auf der Website, die ich verwendet webview und dieser code:
WebView mWebView1 = (WebView) findViewById(R.id.webview1);
mWebView1.getSettings().setJavaScriptEnabled(true);
mWebView1.getSettings().setPluginsEnabled(true);
mWebView1.loadUrl("file:///android_asset/graph_01.swf");
Diese Arbeit ziemlich gut, aber auf jedem Gerät, das ich versucht (Archos 101, Nexus One, Nexus S, Galaxy S, Xperia, Desire, HTC Hero, und wirklich mehr) jede Tätigkeit, die mit "Webansicht" aus, blinken, ein paar Millisekunden der schwarze Bildschirm, dann die animation endlich erscheinen.
PS: Mein layout ist ziemlich einfach zu:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView android:id="@+id/webview1" android:layout_height="fill_parent"
android:layout_width="fill_parent"></WebView>
</LinearLayout>
Bitte helfen Sie mir, ich kann mir nicht vorstellen, ich bin der einzige, der vor diesem Problem.
Vielen Dank, sehr viel für jede Hilfe. Sie haben alle meine code und die demo apk.
können Sie teilen mir Ihre project-Dateien, bitte...
InformationsquelleAutor Waza_Be | 2011-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
DIESE ANTWORT SPÄTER HINZUGEFÜGT:
Also das problem ist, dass Adobe ' s Flash Player erstellt eine
SurfaceView
innerhalb derWebView
und es gibt eine Verzögerung zwischen derSurfaceView
erscheinen und die Flash-engine die Mühe, etwas zu zeichnen. In dieser kleinen Lücke, die SurfaceView angezeigt wird Total schwarz.Die Lösung, die ich gefunden habe, ist Unterklasse WebView und fügen Sie eine benutzerdefinierte SurfaceView zu der Ansicht, Baum. Zweitens ist es auch wichtig, zu unterdrücken, dem ersten draw() aufrufen, um den Adobe anzeigen. Der code für meine Unterklasse WebView ist wie folgt:
Den layout-XML-sollten deklarieren Sie eine Instanz dieser Klasse, d.h. :
Auf meinem Nexus One läuft CM6.1 dies perfekt funktioniert, dass die WebView erscheint als weiße, bis die Flash-SurfaceView beginnt Zeichnung. Sie werden wahrscheinlich brauchen, um es anpassen, ein wenig, z.B. loszuwerden, die hardcoded 800x480 Maße, und auch zerstören die weißen SurfaceView, sobald es nicht mehr benötigt wird.
URSPRÜNGLICHEN (FALSCHEN) ANTWORT:Sieht aus wie Adobe sind Schuld daran.
Den wenigsten schrecklich Abhilfe, die ich bisher gefunden habe, ist :
Es heißt, Sie bekommen einen garantierten eine Sekunde Verzögerung, bevor Sie können nichts sehen, aber es ist weniger Erschütterungen als das schreckliche schwarz flash afaik.
Layout:
Code:
Gibt es vielleicht einen besseren Weg, aber das wäre zu entfernen die Notwendigkeit für eine Feste Verzögerung...
Es ist schon eine Weile her, da habe ich nichts mit Flash, aber ich glaube mich zu erinnern, es ist ein Weg für die Flash-Steuerung zu verwenden, die browser-Javascript-engine (eine schnelle Google dreht den Flex-Ajax Bridge scheint wahrscheinlich).
Was Sie tun können, ist, mit der oben erwähnten Brücke, die Sie mithilfe von ActionScript-Aufruf einer Javascript-Funktion die alert(). In Ihrem Java-code, den Sie würden Haken Ihr mWebView1 bis zu einemWebChromeClient
implementiertonJsAlert()
. In dieser Funktion würden Sie machen, der Webansicht sichtbar.Flüche, manchmal ist es in der Tat nicht mehr funktioniert... scheint, dass eine SurfaceView wird erstellt, und der schwarze Blitz tritt auf zwischen der Oberfläche erstellt wird und die Flash-engine zu entscheiden, etwas zu zeichnen. Was wir brauchen, ist ein bisschen schlauer über das ausblenden der webview...
Ich habe nicht vergessen über diese Frage und den plan zu überdenken, es später heute oder morgen. In der Hoffnung, einige gute Nachrichten für Sie, aber keine Versprechungen.
Hallo Ruben, ich akzeptierte Ihre Antwort und stimmten bis zu Ihnen all die bounty habe ich versprochen. Leider ist das Problem nicht gelöst, wie ich schon sagte im ersten post. Vielen Dank, sehr viel für Ihre Hilfe, ich drücke die Daumen, auch wenn ich mich stark pessimist, über einen fix.
Ich habe es getan! Ich werde aktualisieren, meine Antwort v in Kürze... in Kürze müssen Sie halten ein weiteres SurfaceView auf der Oberseite des Flash -...
InformationsquelleAutor Reuben Scratton