`
Jacular
  • 浏览: 183092 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

android应用中插入flash

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

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

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

1. 项目结构图



2. 程序运行图

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




Java代码 
01. package com.geolo.js.falsh;    
02. import android.app.Activity;    
03. import android.os.Bundle;    
04. import android.os.Handler;    
05. import android.os.Message;    
06. import android.view.View;    
07. import android.webkit.WebChromeClient;    
08. import android.webkit.WebSettings.PluginState;    
09. 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代码 
01. <?xml version="1.0" encoding="utf-8"?>   
02. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
03.     android:orientation="vertical" android:layout_width="fill_parent"   
04.     android:layout_height="fill_parent">   
05.     <WebView android:id="@+id/webView01" android:layout_width="wrap_content"   
06.         android:layout_height="wrap_content" />   
07.             
08.     <ProgressBar android:id="@+id/progress_horizontal"   
09.         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代码 
01. <mce:script src="play.js" mce_src="play.js"></mce:script>   
02. <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">   
03.   <tr>   
04.     <td>   
05.      <object id="movie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"     
06.          codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"     
07.         align="middle">   
08.        <param name="movie" value="about:blank" />   
09.        <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代码 
01. var total;//定义flash影片总桢数    
02. var frame_number;//定义flash影片当前桢数    
03. //以下是滚动条图片拖动程序    
04. var dragapproved=false;    
05. var z,x,y    
06. //动态显示播放影片的当前桢/总桢数(进度条显示)    
07. function showcount(){    
08.     //已测可用CallJava.consoleFlashProgress(5);    
09.     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. }   
分享到:
评论

相关推荐

    android swf flash播放器

    HDSwfPlayer项目提供了一个Android应用的示例,它允许开发者在Android设备上加载和播放SWF文件。这个项目的核心是一个名为SwfView的自定义视图组件,它实现了SWF文件的解析和渲染。SwfView通常需要结合Android的...

    android2.2播放flv flash文件实例eclipse工程

    本文将深入探讨如何在Eclipse环境中构建一个能够播放FLV文件的Android应用,同时也会提及所需的插件和测试代码。 首先,我们需要了解FLV文件格式。FLV是Flash Video的缩写,是一种流行的网络流媒体格式,常用于在线...

    在android的webview中实现websocket通信

    在 Android 的 WebView 中实现 WebSocket 通信是当前移动端应用开发中的一个热门话题。WebSocket 是 HTML5 规范中的一项技术,可以实现客户端与服务器之间的实时双向通信。在桌面浏览器中,WebSocket 技术已经得到了...

    Android 高仿基于android2.2(Froyo)的Contacts.rar

    9. **国际化和本地化**:虽然这个项目可能基于英文版本,但理解如何实现应用的国际化和本地化(I18N & L10N)也是Android开发中的重要技能,包括使用资源文件处理不同语言和地区的文字。 10. **单元测试和调试**:...

    android html学习

    通过WebView,开发者可以将网页内容嵌入到Android应用中。 2. 加载HTML内容:可以使用loadData()、loadDataWithBaseURL()或loadUrl()方法加载HTML字符串或远程网址。 3. JavaScript交互:启用JavaScript支持,使用...

    新手Android做的简单手电筒,欢迎大家提意见

    对于手电筒应用,需要在`AndroidManifest.xml`文件中添加`&lt;uses-permission&gt;`标签,声明`android.permission.CAMERA`权限,因为闪光灯通常与相机功能关联。 2. **硬件接口访问**: Android提供Camera类来访问和...

    Android SDK NDK API 对应关系

    - **API Level 8**:对应Android 2.2(Froyo),增加了Flash Player支持、无线热点功能等。 - **API Level 9**:对应Android 2.3(Gingerbread),增强了输入法、摄像头等功能。 - **API Level 10**:对应Android ...

    android发展历史与应用程序开发学习教案.pptx

    学习Android应用程序开发,不仅是了解其历史,更是要掌握如何在这个平台上构建高效、用户友好的应用。通过深入学习,开发者能够利用Android SDK、Java编程语言以及各种开发工具,创造出满足市场需求的创新应用,参与...

    Android中文API6-7.rar

    在Android 2.3 (Gingerbread)中,开发者可以享受到以下重要更新: 1. **性能提升**:对Dalvik虚拟机进行了优化,提高了应用程序的运行速度和内存管理效率。 2. **多任务支持**:增强了多任务处理能力,允许用户同时...

    [Android一周速成PPT]Android概述.ppt

    - **行业需求**:国内多家大型企业如中国移动、中国联通、华为、联想等纷纷加入Android阵营,推动了Android相关技术的发展和应用。 - **职业机会**:由于Android市场的持续增长,对于具备Android开发技能的人才需求...

    android基础学习

    对于想要学习Android的初学者来说,掌握Java编程语言是基础,因为大部分Android应用是用Java编写的。同时,理解Android系统的基本架构、组件模型以及版本之间的差异也是学习的重点。 为了迅速搭建Android开发环境并...

    android开发基础教程

    对于Android开发,Eclipse可以配合Android Developer Tools (ADT)插件使用,它提供了专门针对Android应用开发的功能,比如代码提示、资源管理、模拟器管理等。ADT插件可以从&lt;http://www.android.com&gt;获取。 3. **...

    Android Things 1.0系统镜像下载

    ### Android Things 1.0系统镜像下载及安装指南 #### 一、概述 随着物联网技术的发展,...遵循上述步骤可以帮助开发者快速搭建起基于 Android Things 的物联网开发平台,从而更好地探索物联网领域的新应用和技术。

    Android 编年史详细介绍

    这一版本不仅在界面设计上做出了一些改进,更重要的是加入了屏幕键盘功能,使得Android设备不再依赖实体键盘。此外,Android 1.5还引入了自定义屏幕键盘的支持,这一举措极大地提升了用户体验,并为第三方开发者提供...

    Android流媒体的播放

    6. **Flash Player支持**:在提到的压缩包中,提到了"FlashPlayer播放器falsh",这可能是指早期Android设备上使用的Adobe Flash Player。Flash Player曾广泛用于网页中的流媒体播放,但现在已经不再支持。然而,在...

    Flash Builder iOS设备的应用程序进行打包

    4.5版本的Flash Builder为开发者提供了打包应用程序以支持Google Android、Apple iOS和BlackBerry Tablet OS设备的能力。不过,为了将应用部署到Apple iOS设备上,开发者需要通过特定的流程来获取苹果的签名证书和...

    android系统开发

    接着,需要编辑`/etc/profile`文件,将Repo脚本目录加入到`PATH`环境变量中。例如: ```bash PATH=/opt/repo:$PATH ``` ##### 2.2 下载源码 **创建存放源码的目录** 在用户主目录下创建一个新的目录用于存放...

Global site tag (gtag.js) - Google Analytics