2011-05-21 34 views
1

我正在開發一個android 3.0平板電腦的應用程序,它應該在WebView中播放swf文件。 首先我試圖從設備上打開swf文件,而不是通過互聯網,沒有運氣。 WebView出現了,但在WebView內部,我所能看到的只是一個黑屏(在右邊有一個3-4像素寬的白線)。 如果我將相同的URL加載到設備瀏覽器,則Flash文件播放良好。 我想我缺少WebView設置的東西,但經過幾個小時的搜索和谷歌搜索,我仍然不知道什麼。WebView不會在Android上播放swf文件

的Java代碼:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    setContentView(R.layout.presentation); 

    presentationWebView = (WebView) findViewById(R.id.presentation_webview); 

    presentationWebView.getSettings().setJavaScriptEnabled(true); 
    presentationWebView.getSettings().setPluginsEnabled(true); 
    presentationWebView.getSettings().setAllowFileAccess(true); 
    presentationWebView.loadUrl("http://my_domain/fileName.swf"); 

}

的presentation.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <WebView 
     android:id = "@+id/presentation_webview" 
     android:layout_width = "fill_parent" 
     android:layout_height = "fill_parent"/> 
</LinearLayout> 

感謝您的任何答案非常mouch。 Ripityom

+0

的可能重複的[加載的SWF到web視圖(http://stackoverflow.com/questions/2994116/load-an-swf-into-a-webview)這似乎提供瞭解決方案。 – 2011-05-22 16:49:07

回答

5

我終於明白了! 只需要添加屬性

android:hardwareAccelerated = "true" 

我的清單文件。

+0

這很有趣!我能不能問一下在這種情況下,正在使用什麼設備和Android版本?在我的兩個設備上,swf文件在未啓用hardwareAccelerated設置的情況下工作。 – 2011-05-28 09:13:59

+0

幾個折騰幾天看一個空白的屏幕後,我發現了這個...機器人:硬件加速=「真」 ......我發誓。它救了我的天! – 2012-04-01 05:12:25

2

我只是複製&將你的代碼粘貼到一個新的項目中,改變了swf文件的位置,它的工作完美。 (在.swf文件完成下載之前,屏幕是空白的,在某些情況下可能需要一段時間)。

您的應用程序是否具有INTERNET權限?該網址絕對正確?嘗試使用幾個不同的SWF文件,看看是否有區別。

0

Thx Pipityom。屬性「android:hardwareAccelerated」拯救了我的生命。爲我工作。

在這裏,我發佈了來自android開發者文檔的解釋「從Android 3.0開始,硬件加速的OpenGL渲染器可用於應用程序,以提高許多常見2D圖形操作的性能,當啓用硬件加速渲染器時,大多數在Canvas,Paint,Xfermode,ColorFilter,Shader和Camera中的操作都會加速,從而導致更平滑的動畫,更平滑的滾動和更好的響應性,即使對於沒有明確使用框架的OpenGL庫的應用程序也是如此。不是所有的OpenGL的2D操作的加速。如果啓用硬件加速渲染器,測試您的應用程序,以確保它可以利用的渲染沒有錯誤「。