android应用中插入flash

无论如何,我们需要一个android2.2的平板电脑或者android2.2的手机一部,同时我们的android平台需要安装最新的flash for android 的插件。  具备了这些之后,我们就可以将flash通过webView的方式嵌入到我们自己的程序中了。 

  需要的知识:JavaScript知识、java知识、html知识,了解css的话,那最好。 

  不多说,和以前一样,直接上代码,上图。不解释太多。。。。 

1. 项目结构图 

android应用中插入flash_第1张图片 

2. 程序运行图 

[img]http://hi.csdn.net/attachment/201012/17/91385_1292549973BLl1.png 
[/img] 

Java代码   收藏代码
  1. package com.geolo.js.falsh;     
  2. import android.app.Activity;     
  3. import android.os.Bundle;     
  4. import android.os.Handler;     
  5. import android.os.Message;     
  6. import android.view.View;     
  7. import android.webkit.WebChromeClient;     
  8. import android.webkit.WebSettings.PluginState;     
  9. import android.webkit.WebView;     
  10. import android.widget.Button;     
  11. import android.widget.FrameLayout;     
  12. import android.widget.ProgressBar;     
  13. public class MainActivity extends Activity {     
  14.     private WebView mWebView;     
  15.     private Button playButton,pauseButton;     
  16.     private ProgressBar mProgressBarHorizontal;     
  17.     private final static int PROGRESSBARSIZE = 0x0000;     
  18.     @Override    
  19.     public void onCreate(Bundle savedInstanceState) {     
  20.         super.onCreate(savedInstanceState);     
  21.         setContentView(R.layout.main);     
  22.         mWebView = (WebView)findViewById(R.id.webView01);      
  23.         mProgressBarHorizontal = (ProgressBar)findViewById(R.id.progress_horizontal);     
  24.         this.setProgress(mProgressBarHorizontal.getProgress() * 100);     
  25.         //this.setSecondaryProgress(mProgressBarHorizontal.getSecondaryProgress() * 100);     
  26.         playButton = (Button)findViewById(R.id.playButton);     
  27.         pauseButton = (Button)findViewById(R.id.pauseButton);     
  28.         playButton.setOnClickListener(buttonListener);     
  29.         pauseButton.setOnClickListener(buttonListener);     
  30.         mWebView.getSettings().setJavaScriptEnabled(true);       
  31.         //mWebView.getSettings().setPluginsEnabled(true);     
  32.         mWebView.getSettings().setPluginState(PluginState.ON);     
  33.         mWebView.setWebChromeClient(new WebChromeClient());      
  34.         mWebView.addJavascriptInterface(new CallJava(), "CallJava");     
  35.         mWebView.loadUrl("file:///android_asset/sample/index.html");      
  36.         startThread();     
  37.     }     
  38.     Button.OnClickListener buttonListener = new Button.OnClickListener() {       
  39.         @Override    
  40.         public void onClick(View v) {     
  41.             int buttonID = v.getId();     
  42.             switch (buttonID) {     
  43.             case R.id.playButton:     
  44.                 mWebView.loadUrl("javascript:Play()");     
  45.                 showFlashProgress(5);     
  46.                 break;     
  47.             case R.id.pauseButton:     
  48.                 mWebView.loadUrl("javascript:Pause()");     
  49.                 break;     
  50.             default:     
  51.                 break;     
  52.             }     
  53.         }     
  54.     };     
  55.     public void showFlashProgress(float progressSize){     
  56.         int size = (int)progressSize;     
  57.         //Toast.makeText(this, size+"", Toast.LENGTH_SHORT).show();     
  58.         mProgressBarHorizontal.setProgress(size);     
  59.     }     
  60.     @Override    
  61.     protected void onPause(){     
  62.         super.onPause();     
  63.         mWebView.pauseTimers();     
  64.         if(isFinishing()){     
  65.             mWebView.loadUrl("about:blank");     
  66.             setContentView(new FrameLayout(this));     
  67.         }     
  68.     }     
  69.     @Override    
  70.     protected void onResume(){     
  71.         super.onResume();     
  72.         mWebView.resumeTimers();     
  73.     }     
  74.     private final class CallJava{     
  75.         public void consoleFlashProgress(float  progressSize){     
  76.             showFlashProgress(progressSize);     
  77.         }     
  78.     }     
  79.     private void startThread(){     
  80.         //通过线程来改变ProgressBar的值     
  81.         new Thread(new Runnable() {     
  82.             @Override    
  83.             public void run() {     
  84.                 while(!Thread.currentThread().isInterrupted()){     
  85.                     try {     
  86.                         Thread.sleep(2000);     
  87.                         Message message = new Message();     
  88.                         message.what = MainActivity.PROGRESSBARSIZE;     
  89.                         MainActivity.this.myMessageHandler.sendMessage(message);     
  90.                     } catch (Exception e) {     
  91.                         Thread.currentThread().interrupt();     
  92.                     }     
  93.                 }     
  94.             }     
  95.         }).start();     
  96.     }     
  97.     Handler myMessageHandler = new Handler() {     
  98.         @Override    
  99.         public void handleMessage(Message msg) {     
  100.             switch (msg.what) {     
  101.             case MainActivity.PROGRESSBARSIZE:     
  102.                 mWebView.loadUrl("javascript:showcount()");     
  103.                 break;     
  104.             default:     
  105.                 break;     
  106.             }     
  107.             super.handleMessage(msg);     
  108.         }     
  109.     };     
  110. }    


4. main.xml 

Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.     android:orientation="vertical" android:layout_width="fill_parent"    
  4.     android:layout_height="fill_parent">    
  5.     <WebView android:id="@+id/webView01" android:layout_width="wrap_content"    
  6.         android:layout_height="wrap_content" />    
  7.              
  8.     <ProgressBar android:id="@+id/progress_horizontal"    
  9.         style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent"    
  10.         android:layout_height="wrap_content" android:max="100"    
  11.         android:progress="0" android:secondaryProgress="0" />    
  12.              
  13.     <LinearLayout android:orientation="horizontal"    
  14.         android:layout_width="fill_parent" android:layout_height="wrap_content">    
  15.         <Button android:id="@+id/playButton" android:layout_width="wrap_content"    
  16.             android:layout_height="wrap_content" android:text="play" />    
  17.         <Button android:id="@+id/pauseButton" android:layout_width="wrap_content"    
  18.             android:layout_height="wrap_content" android:text="pause" />    
  19.    </LinearLayout>    
  20. </LinearLayout>    


5. index.html 

Java代码   收藏代码
  1. <mce:script src="play.js" mce_src="play.js"></mce:script>    
  2. <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">    
  3.   <tr>    
  4.     <td>    
  5.      <object id="movie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"      
  6.          codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"      
  7.         align="middle">    
  8.        <param name="movie" value="about:blank" />    
  9.        <param name="quality" value="high" />    
  10.      </object>    
  11.     </td>    
  12.   </tr>    
  13. </table>    
  14.         
  15.         
  16.    <!-- <a href="javascript:CallJava.consoleFlashProgress(3)" mce_href="javascript:CallJava.consoleFlashProgress(3)">add Progress</a>      
  17.    <a href="#" mce_href="#" onClick="showcount()">add Progress</a>      
  18.     -->    
  19. <mce:script type="text/javascript"><!--     
  20.   loadSWF("testFlash.swf","800","480"); //loadSWF("flash地址","宽度","高度")     
  21. // --></mce:script>  


6.play.js 

Java代码   收藏代码
  1. var total;//定义flash影片总桢数     
  2. var frame_number;//定义flash影片当前桢数     
  3. //以下是滚动条图片拖动程序     
  4. var dragapproved=false;     
  5. var z,x,y     
  6. //动态显示播放影片的当前桢/总桢数(进度条显示)     
  7. function showcount(){     
  8.     //已测可用CallJava.consoleFlashProgress(5);     
  9.     total = movie.TotalFrames;     
  10.     frame_number=movie.CurrentFrame();     
  11.     frame_number++;     
  12.     var progressSize = 100*(frame_number/movie.TotalFrames());     
  13.     CallJava.consoleFlashProgress(progressSize);     
  14. }     
  15. //播放影片      
  16. function Play(){     
  17.     movie.Play();     
  18. }     
  19. //暂停播放     
  20. function Pause(){     
  21.  movie.StopPlay();     
  22. }     
  23. //开始载入flash影片     
  24. function loadSWF(fsrc,fwidth,fheight){     
  25.  movie.LoadMovie(0, fsrc);     
  26.  movie.width=fwidth;     
  27.  movie.height=fheight;     
  28.  frame_number=movie.CurrentFrame();     
  29.  jindu();     
  30. }    
from:http://chenzubin.iteye.com/blog/1099992

你可能感兴趣的:(JavaScript,android,layout,Flash,button,encoding)