- 浏览: 129155 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
newhxj:
03-21 10:56:35.850: E/Web Conso ...
Android简易Flash播放器[转] -
roiz:
谢谢 很好正需要这资料
精确监听AbsListView滚动至底部[转]
无论如何,我们需要一个android2.2的平板电脑或者android2.2的手机一部,同时我们的android平台需要安装最新的flash for android 的插件。 具备了这些之后,我们就可以将flash通过webView的方式嵌入到我们自己的程序中了。
需要的知识:JavaScript知识、java知识、html知识,了解css的话,那最好。
不多说,和以前一样,直接上代码,上图。不解释太多。。。。
1. 项目结构图
2. 程序运行图
3.MainActivity .java 主类
package com.geolo.js.falsh; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebSettings.PluginState; import android.webkit.WebView; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ProgressBar; public class MainActivity extends Activity { private WebView mWebView; private Button playButton,pauseButton; private ProgressBar mProgressBarHorizontal; private final static int PROGRESSBARSIZE = 0x0000; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView)findViewById(R.id.webView01); mProgressBarHorizontal = (ProgressBar)findViewById(R.id.progress_horizontal); this.setProgress(mProgressBarHorizontal.getProgress() * 100); //this.setSecondaryProgress(mProgressBarHorizontal.getSecondaryProgress() * 100); playButton = (Button)findViewById(R.id.playButton); pauseButton = (Button)findViewById(R.id.pauseButton); playButton.setOnClickListener(buttonListener); pauseButton.setOnClickListener(buttonListener); mWebView.getSettings().setJavaScriptEnabled(true); //mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setPluginState(PluginState.ON); mWebView.setWebChromeClient(new WebChromeClient()); mWebView.addJavascriptInterface(new CallJava(), "CallJava"); mWebView.loadUrl("file:///android_asset/sample/index.html"); startThread(); } Button.OnClickListener buttonListener = new Button.OnClickListener() { @Override public void onClick(View v) { int buttonID = v.getId(); switch (buttonID) { case R.id.playButton: mWebView.loadUrl("javascript:Play()"); showFlashProgress(5); break; case R.id.pauseButton: mWebView.loadUrl("javascript:Pause()"); break; default: break; } } }; public void showFlashProgress(float progressSize){ int size = (int)progressSize; //Toast.makeText(this, size+"", Toast.LENGTH_SHORT).show(); mProgressBarHorizontal.setProgress(size); } @Override protected void onPause(){ super.onPause(); mWebView.pauseTimers(); if(isFinishing()){ mWebView.loadUrl("about:blank"); setContentView(new FrameLayout(this)); } } @Override protected void onResume(){ super.onResume(); mWebView.resumeTimers(); } private final class CallJava{ public void consoleFlashProgress(float progressSize){ showFlashProgress(progressSize); } } private void startThread(){ //通过线程来改变ProgressBar的值 new Thread(new Runnable() { @Override public void run() { while(!Thread.currentThread().isInterrupted()){ try { Thread.sleep(2000); Message message = new Message(); message.what = MainActivity.PROGRESSBARSIZE; MainActivity.this.myMessageHandler.sendMessage(message); } catch (Exception e) { Thread.currentThread().interrupt(); } } } }).start(); } Handler myMessageHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MainActivity.PROGRESSBARSIZE: mWebView.loadUrl("javascript:showcount()"); break; default: break; } super.handleMessage(msg); } }; }
4. main.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/webView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ProgressBar android:id="@+id/progress_horizontal" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="0" android:secondaryProgress="0" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/playButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="play" /> <Button android:id="@+id/pauseButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="pause" /> </LinearLayout> </LinearLayout>
5. index.html
<mce:script src="play.js" mce_src="play.js"></mce:script> <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000"> <tr> <td> <object id="movie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" align="middle"> <param name="movie" value="about:blank" /> <param name="quality" value="high" /> </object> </td> </tr> </table> <!-- <a href="javascript:CallJava.consoleFlashProgress(3)" mce_href="javascript:CallJava.consoleFlashProgress(3)">add Progress</a> <a href="#" mce_href="#" onClick="showcount()">add Progress</a> --> <mce:script type="text/javascript"><!-- loadSWF("testFlash.swf","800","480"); //loadSWF("flash地址","宽度","高度") // --></mce:script>
6.play.js
var total;//定义flash影片总桢数 var frame_number;//定义flash影片当前桢数 //以下是滚动条图片拖动程序 var dragapproved=false; var z,x,y //动态显示播放影片的当前桢/总桢数(进度条显示) function showcount(){ //已测可用CallJava.consoleFlashProgress(5); total = movie.TotalFrames; frame_number=movie.CurrentFrame(); frame_number++; var progressSize = 100*(frame_number/movie.TotalFrames()); CallJava.consoleFlashProgress(progressSize); } //播放影片 function Play(){ movie.Play(); } //暂停播放 function Pause(){ movie.StopPlay(); } //开始载入flash影片 function loadSWF(fsrc,fwidth,fheight){ movie.LoadMovie(0, fsrc); movie.width=fwidth; movie.height=fheight; frame_number=movie.CurrentFrame(); jindu(); }
发表评论
-
android Theme使用总结
2012-12-12 19:22 1426今天对api中style下的theme整个摸了一遍。 ... -
android优化——adapter
2012-12-12 18:56 1470什么是Adapter,可以先看看我的上一篇文章,Andr ... -
listview样式设置——自定义背景、分隔[转]
2012-12-12 14:13 786在Android中,ListView是最常用的一个控件, ... -
draw9patch不失真背景
2012-12-12 00:23 12931.背景自适应且不失真问题的存在 制作自适应背 ... -
android布局之selector(背景选择器)[转]
2012-12-11 23:07 2818关于listview和button都 ... -
android布局之RelativeLayout属性
2012-12-11 23:06 1184android:layout_above ... -
Android ListView下拉刷新点击加载更多[转]
2012-12-03 09:04 1683这个ListView的下拉刷新算是不错了。网上找了很多个 ... -
BitmapFactory.Options详解[转]
2012-11-21 20:50 3281public Bitmap in ... -
Java基于Socket文件传输示例[转]
2012-11-21 17:58 712最近需要进行网络传输大文件,于是对基于socket的文件传输作 ... -
Java基础:三步学会Java Socket编程3[转]
2012-11-21 17:17 790第三步 实现信息共享:在Socket上的实时交流 网络的 ... -
Java基础:三步学会Java Socket编程2[转]
2012-11-21 17:15 712第二步 多个客户同时连接 在实际的网络环境里,同一时间只 ... -
Java基础:三步学会Java Socket编程1[转]
2012-11-21 17:12 793第一步 充分理解Socket ... -
一步步优化JVM七:其他[转]
2012-11-10 23:37 988边缘问题 在某 ... -
一步步优化JVM六:优化吞吐量[转]
2012-11-07 00:23 6980如果你已经进行 ... -
一步步优化JVM五:优化延迟或者响应时间(3)[转]
2012-11-07 00:20 6661CMS垃圾回收器周期 一旦young的空 ... -
一步步优化JVM五:优化延迟或者响应时间(2)[转]
2012-11-07 00:13 1561优化CMS(concurrent garbage col ... -
一步步优化JVM五:优化延迟或者响应时间(1)[转]
2012-11-06 23:35 1100本节的目标是做 ... -
一步步优化JVM四:决定Java堆的大小和内存占用[转]
2012-11-06 19:21 1090到目前为止,还没有做明确的优化工作。只是做了初始 ... -
一步步优化JVM三:GC优化基础[转]
2012-11-06 18:52 1113本节主要描述关于垃圾回收器性能的三个指标,三 ... -
一步步优化JVM二:JVM部署模型和JVM Runtime[转]
2012-11-06 18:27 1196选择JVM部署模型 JVM部署模型的选择总体来说 ...
相关推荐
将Flash 嵌入WPF 程序源码 将Flash 嵌入WPF 程序源码
在wpf中嵌入flash,操作文档加程序
在wpf程序中嵌入flash动画。 代码是vs 2010 C#描述。
将flash小游戏嵌入到wpf中源码程序 有源码 可执行
在使用中发现有的ppt文件中嵌入了flash文件,基于某些特殊的原因我们需要把这些嵌入的flash文件提取出来为单独的Flash文件,这样就可以把它用于其他的ppt文件或者用flash反编译的程序把flash文件反编译出来进行某些...
易语言的flash程序源码,源程序,免费下载了
在手机应用程序中嵌入字体 在手机控件中使用 HTML 文本 第 6 章: 外观设计 手机外观设计的基础知识 为手机应用程序创建外观 应用自定义手机外观 第 7 章: 运行和调试手机应用程序 管理启动配置 在桌面上运行和...
在VC中使用 Flash 美化你的程序 利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?...在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。
中国人的习俗,没过完正月十五就还是在过年,在这里给园子你的朋友们拜个晚年了。 这几天恰逢公司网站首页需要改版,去年底公司“人员精简”后,一个人得做多个人的活,忽然之间发觉担子重了。这不, 本不是我工作...
NXP的最新版HEX下载软件,单片机.arm烧录工具,win10版。嵌入系统开发必备软件,版本号12.75 build 5732
使用FLASH做界面美化是一种较为常见的方式,FLASH动画制做简单,美观大方,而且将FLASH嵌入到应用程序界面上也是非常容易的,只要放置一个Shockwave Flash控件即可。但这样做出来的界面有两个问题,一是在FLASH上...
Adobe Flash Player是一种广泛使用的、专有的多媒体程序播放器。它最初由Macromedia编写,在Macromedia被Adobe收购后由Adobe继续开发并分发。...因此Flash 成为嵌入网页中的小游戏、动画以及图形用户界面常用的格式。
它们也可以放到电子邮件上发送,嵌入微软的PowerPoint演示文稿,或纳入微软的Word文件中。 版本:v3.0 Build:2009.11.30 * 注:此程序汉化版本基于官方英文原版语言文件制作; 本安装程序部分资源基于官方繁体...
点击“打开文件”装入文件夹“在片外RAM中运行的程序”下的一个程序文件(HEX格式),在这些程序中,所有起始地址都已经预先设置好了; 按实验箱上单片机的RST键,会看到显示“Ready”; 点击“发送文件”,程序...
Adobe Flash Player是一种广泛使用的、专有的多媒体程序播放器。它最初由Macromedia编写,在Macromedia被Adobe收购后由Adobe继续开发并分发。...因此Flash 成为嵌入网页中的小游戏、动画以及图形用户界面常用的格式。
想在C#(VC.net)中轻松控制flash吗?想实现只有透明背景的flash程序吗?用Flash轻松打造应用程序超酷的界面试试用f_in_box。 此修改版是我根据其demo版修改的,去掉了demo的多余显示,其本身没有功能限制。 在...
XML版本:可以单独运行在任何支持flash的环境,更可以嵌入到其他swf中,可以手动配置content.xml文件,也可以通过后台在asp环境下自动生成xml文件,swf文件为xmlpreview.swf 追梦相册程序既可以独立运行,也可以...
后台 xmleditor/login.asp admin/admin版本功能:作为单独flash播放器,你可以将这个程序嵌入到任何支持asp的页面中,通过后台你可以轻易的拥有自己的歌曲列表,外部链接的支持让服务器压力骤减。单独的xml模块更...