2013-09-25 2 views
1

Я хочу, чтобы я играл .swf-файл, когда пользователь android нажимает на значок приложения и запускает приложение, и после этого я хочу начать работу приложения. Вот что я подумал и что сделал до сих пор.play .swf при запуске приложения

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.webkit.WebView; 
import android.webkit.WebSettings.PluginState; 

public class Splash_Screen extends 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() { 

      /* 
      * Showing splash screen with a timer. This will be useful when you 
      * want to show case your app logo/company 
      */ 

      @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); также не подхватывается затмением!

ответ

1

startActivity(yes_krao) вызывается сразу после загрузки WebView, поэтому приложение переключит действия, прежде чем ваш .swf сможет сыграть. Одним из решений было бы реализовать Handler и переключать действия после продолжительности вашего .swf-файла.

т.д .:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.webkit.WebView; 
import android.webkit.WebSettings.PluginState; 

public class Splash_Screen extends 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); 

     String localUrl ="file:///android_asset/Kiss-o-meter.swf"; 

     WebView wv=(WebView) findViewById(R.id.webview); 
     wv.getSettings().setPluginState(PluginState.ON); 
     wv.loadUrl(localUrl); 

     new Handler().postDelayed(new Runnable() { 

      /* 
      * Showing splash screen with a timer. This will be useful when you 
      * want to show case your app logo/company 
      */ 

      @Override 
      public void run() { 
       // This method will be executed once the timer is over 
       // Start your app main activity  
       Intent yes_krao = new Intent(Splash_Screen.this, KissingMeter.class); 
       startActivity(yes_krao); 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 
} 

Обратите внимание, что setPluginsEnabled() устарел, поэтому вы должны использовать setPluginState():

WebSettings webSettings = yourWebView.getSettings(); 
webSettings.setPluginState(PluginState.ON); 
+0

увидеть мой отредактированный код. Это так, как вы говорите? – Baba

+0

проверьте его, чтобы я мог принять ответ :) – Baba

+0

Переместите код WebView над обработчиком (см. Мой отредактированный ответ), так что сначала вызывается код, а затем после SPLASH_TIME_OUT вызывается Intent и изменяется действие. – ashatte

Смежные вопросы