2011-06-30 97 views
1

我在加载android模拟器中的交互式SWF文件时出现问题。我使用2.3.1 AVD。在Android中加载swf文件时出现问题

这是代码:

package com.androidpeople.view; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.webkit.WebView; 

    public class WebViewExample extends Activity { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      /*WebView webView = (WebView) findViewById(R.id.webview); 
      webView.getSettings().setJavaScriptEnabled(true); 
      webView.loadUrl("http://www.androidpeople.com"); 

      webView.setWebViewClient(new HelloWebViewClient());*/ 

      String html = 
       "<object width=\"550\" height=\"400\"> <param name=\"movie\" value=\"file:///android_asset/FL.swf\"> <embed src=\"file:///android_asset/FL.swf\" width=\"550\" height=\"400\"> </embed> </object>"; 
       String mimeType = "text/html"; 
       String encoding = "utf-8"; 

      WebView wv=(WebView) findViewById(R.id.webview); 
      wv.getSettings().setJavaScriptEnabled(true); 
      wv.getSettings().setPluginsEnabled(true); 
      wv.loadDataWithBaseURL("null", html, mimeType, encoding, ""); 
      wv.setWebViewClient(new HelloWebViewClient()); 



     } 
    } 


package com.androidpeople.view; 

import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class HelloWebViewClient extends WebViewClient { 

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    view.loadUrl(url); 
    return true; 
} 

} 

清单文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.androidpeople.view" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".WebViewExample" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 
<uses-sdk android:minSdkVersion="5" /> 

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

</manifest> 

现在的问题是,当我运行该项目,它会给一个方框状中心右侧的三维尺寸:

this is the image

我也试图改变不同的SWF文件,但无法得到适当的解决方案。

任何人都可以帮助我吗?谢谢。

+1

是您正确的链接,例如如果您添加一个链接到file:///android_asset/FL.swf的标签,您可以下载该文件吗? –

+2

@niky:你没有答案的部分原因是,除了“谁能帮助我?”之外,你没有提出任何问题。 – CommonsWare

+0

雅其totaly正确,我已经检查了很多时间 –

回答

3

更换

wv.loadDataWithBaseURL("null", html, mimeType, encoding, ""); 

wv.loadData(html, mimeType, encoding, ""); 
wv.getSettings().setJavaScriptEnabled(true); 
+0

我的模拟器有同样的问题,我按照你的建议做了,但是我得到的只是上面图像中的蓝色符号已经消失了,但无法看到动画,我所有的代码都是正确的我在这里发布了这个问题,请帮助我! http://stackoverflow.com/questions/9308712/how-to-run-the-swf-file-in-android-emulator – VENKI

3

这只是因为你需要安装Flash Player。 从adobe网站下载apk并安装到仿真器上。

+0

我已经安装了Flash Player,但仍然得到解决问题 –

+0

当你浏览网站的?是否显示动画? –

+0

ya。还有,我的Flash开发人员通过Adobe-air生成一个apk文件,当他们在设备上测试时它工作正常,但是当我尝试以这种方式执行任何交互式swf文件时,我在加载设备时遇到了问题。我想告诉你的另一件事是,当我尝试加载非交互式SWF文件时,它会正常工作。但问题是在这里提出.... –

0

Flash无法在模拟器上跑!
至少,我没有找到办法。但是,您可以从this site下载APK并将其安装到您的设备上。然后,使用下面的代码,我得到了Flash的工作。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    WebView webView = (WebView) findViewById(R.id.webview); 
    webView.getSettings().setPluginState(WebSettings.PluginState.ON); 
    webView.loadUrl("http://www.adobe.com/software/flash/about/"); 
} 

在activity_main.xml中:

<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/webview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
/>