`
Jacular
  • 浏览: 178892 次
  • 性别: 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+HTML5的移动Web项目高效开发探究

    NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...

    DSM记事本 v1.0.33 for Android.zip

    -支持手绘,并且可以将多页手绘内容保存为flash动画(SWF格式),方便和其他朋友分享; -支持文本、图片、视频、语音常用记事类型,还支持手绘涂鸦,可以对文字、图片进行放大、缩小、旋转、叠加等美化处理,让记事变成...

    河马动画师 Hippo Animator 5.1.5995 中文多语版 HTML 动画工作室.rar

    你自己用一行代码的 web 页中插入动画。 发布应用程序 创建打包的 web 应用程序 (W3C widget)。Web 应用程序可以转换为 iOS, Android 和 Windows 手机应用程序在使用大量的产品,如 PhoneGap 或 Cordova。这些...

    Anki-Android:AnkiDroid:Android上的Anki抽认卡。 您实现超人信息保留的秘诀

    开源间隔重复抽卡系统到Android的半官方端口。 用AnkiDroid记住任何东西! 产品特点 夜间模式 白板 进度小部件 详细统计 与AnkiWeb同步 写下答案(可选) 文字转语音整合 超过6000个预制甲板 间隔重复(supermemo ...

    Android编程实现手机自带内部存储路径的获取方法

    我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micro SD Card,原名Trans-flash Card(TF卡),2004年正式更名为Micro SD Card),但是机身自带了一个内置存储卡(也就是eMMC存储,...

    跨平台开发:初探PhoneGap移动开发框架

    随着Google的Android手机和苹果的iPhone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中。目前移动终端中的冠亚军Android,应用是基于Java语言基础上进行开发的;而苹果公司的iPhone则是基于C语言开发...

    wen_ov5640_r16_20161114_1744后插入UVC可以打开ov5640和USB摄像头.7z

    wen_ov5640_r16_20161114_1744后插入UVC可以打开ov5640和USB摄像头.7z 20161114全志R16配置为前ov5640后UVC的双摄像头 1、 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\configs\camera....

    photos:memories您的记忆在您的控制之下

    手机照片使用Android / iOS应用程序查看您的照片。 可以自动上传它们。维护者 如果您想加入,只需浏览并修复一些! :building_construction: 开发设置 :cloud: 将其克隆到Nextcloud的apps文件夹中。 :woman::laptop:...

    Tasker Pro 5.7.0.apk

    * APP:日历插入,回家,杀死应用程序,加载应用程序,打开地图(/ StreetView / Nav) *音频:警报/呼叫/ DTMF /媒体/通知/振铃/系统音量,触觉反馈切换,麦克风静音,通知脉冲,通知()/振铃振动(或根),静音...

    chrome.exe

    Google曾在自己的官方博客中宣布在Beta版Chrome25 中将加入网络语音API(Web SpeechAPI),让用户在某些嵌入了JavaScript的网页中可以更方便地使用语音指令、听写等功能。同时新版本在内容安全策略标头(Content ...

    ADC-week3

    应用程序是使用Jetpack Compose和帮助程序撰写工具(如导航,窗口插入等)构建的。 :camera_with_flash:屏幕截图 执照 Copyright 2020 The Android Open Source Project Licensed under the Apache License, ...

    gc2035_parrotv1.1_验证完成_vga+uxga_hd720p正常_svga_20171011_1725没有外层目录.7z

    Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\configs\camera.cfg 修改: number_of_camera = 1 为: number_of_camera = 2 如果不改这里,兄弟,你在camera这个APP里面是绝对看不到前后...

    《程序员》杂志2012年第1期.pdf (免费积分下载)

    随着Web的普及,浏览器及其插件如Flash和Silverlight也都成为平台。企业软件开发中,又有WebSphere、JBoss等中间件和各种面向领域的业务平台,也都是平台。 Web 2.0、云计算发展起来后,为了共享数据,提供更无缝的...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目源代码

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

Global site tag (gtag.js) - Google Analytics