我想在用户点击程序图标时,程序开启时播放 .swf 文件,然后我想开启程序的 activity。怎么实现?
我使用的代码如下:
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
String localUrl ="file:///android_asset/Kiss-o-meter.swf";
WebView wv=(WebView) findViewById(R.id.webview);
wv.getSettings().setPluginState(PluginState.ON);
wv.loadUrl(localUrl);
Intent yes_krao = new Intent(Splash_Screen.this, KissingMeter.class);
startActivity(yes_krao);
finish();
}
}, SPLASH_TIME_OUT);
}
xml 文件:
<?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/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
上面的代码有什么错误啊?好像没有执行, setPluginsEnabled(true);
也没有在eclipse 中运行。
该回答引用ChatGPT
根据你的描述和代码,你的应用程序在启动时尝试加载本地的 .swf 文件并将其显示在一个 WebView 中,同时启动另一个 Activity。
但是,根据 Android 官方文档,Android 4.4 及以后的版本不再支持 Adobe Flash Player,因此你不能使用 WebView 加载 .swf 文件。相反,你应该考虑使用其他格式的媒体文件,如 MP4、WebM 等。
另外,在你的代码中,setPluginState 方法已经被弃用。正确的做法是调用 getSettings().setPluginState(WebSettings.PluginState.ON) 来启用插件。
最后,你需要确保在 AndroidManifest.xml 文件中正确地声明了 KissingMeter Activity。
以下是更新后的示例代码:
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
WebView wv = findViewById(R.id.webview);
wv.getSettings().setPluginState(WebSettings.PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// 页面加载完成后启动 Activity
Intent yes_krao = new Intent(Splash_Screen.this, KissingMeter.class);
startActivity(yes_krao);
finish();
}
});
wv.loadUrl("file:///android_asset/your_video.mp4");
}
请注意,我在代码中假设你已经将一个 MP4 视频文件命名为 your_video.mp4 并将其放置在应用程序的 assets 文件夹中。
此外,我还为 WebView 设置了一个 WebViewClient,当页面加载完成后会自动启动 KissingMeter Activity。这样可以确保页面加载完成后再启动 Activity,以避免可能的错误。
最后,请确保你的 AndroidManifest.xml 文件中正确声明了 KissingMeter Activity,类似于以下示例:
<activity android:name=".KissingMeter">
<!-- 可选:声明该 Activity 为启动 Activity -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>