zoukankan      html  css  js  c++  java
  • Android中加入flash程序

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

    <IGNORE_JS_OP>QQ截图未命名.png.thumb.jpg


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

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

    main.xml

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

    index.html

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

    play.js

    1.     view plaincopy to clipboardprint?
    2.     var total;//定义flash影片总桢数   
    3.     var frame_number;//定义flash影片当前桢数   
    4.     //以下是滚动条图片拖动程序   
    5.     var dragapproved=false;   
    6.     var z,x,y   
    7.     //动态显示播放影片的当前桢/总桢数(进度条显示)   
    8.     function showcount(){   
    9.         //已测可用CallJava.consoleFlashProgress(5);   
    10.         total = movie.TotalFrames;   
    11.         frame_number=movie.CurrentFrame();   
    12.         frame_number++;   
    13.         var progressSize = 100*(frame_number/movie.TotalFrames());   
    14.         CallJava.consoleFlashProgress(progressSize);   
    15.     }   
    16.     //播放影片   
    17.     function Play(){   
    18.         movie.Play();   
    19.     }   
    20.     //暂停播放   
    21.     function Pause(){   
    22.     movie.StopPlay();   
    23.     }   
    24.     //开始载入flash影片   
    25.     function loadSWF(fsrc,fwidth,fheight){   
    26.     movie.LoadMovie(0, fsrc);   
    27.     movie.width=fwidth;   
    28.     movie.height=fheight;   
    29.     frame_number=movie.CurrentFrame();   
    30.     jindu();   
    31.     }  
  • 相关阅读:
    函数的存储 堆和栈
    函数的容错处理 函数的返回值
    Linux启动故障排查和修复技巧
    干货 | 亿级Web系统负载均衡几种实现方式
    利用expect批量修改Linux服务器密码
    干货 | LVM快照学习
    实战 | Linux根分区扩容
    LVM 逻辑卷学习
    Shell脚本实战:日志关键字监控+自动告警
    手把手教你在Linux中快速检测端口的 3 个小技巧
  • 原文地址:https://www.cnblogs.com/makeryan/p/2508898.html
Copyright © 2011-2022 走看看