package com.geolo.android.flash;
import com.geolo.android.FileBrowser;
import com.geolo.android.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
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 FlashActivity extends Activity{
private WebView mWebView;
private Button playButton,pauseButton,rewindButton,exitButton,fileButton;
private ProgressBar mProgressBarHorizontal;
private final static int PROGRESSBARSIZE = 0x0000;
private final static int FLASH_START = 0x0001;
private String flashName ;
private boolean stopThread = false;
private ProgressDialog mProgressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Flash动画正在加载,请稍等......");
mProgressDialog.show();
Intent intent = this.getIntent();
String fileName = intent.getStringExtra("fileName");
if(fileName != null && !fileName.equals("")){
flashName = "file://"+fileName;
//flashName = "javascript:setFlashPath(flashName)";
}else{
flashName = "file:///android_asset/sample/flash.swf";
}
Log.d(this.getClass().getName(), flashName);
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);
rewindButton = (Button)findViewById(R.id.rewindButton);
exitButton = (Button)findViewById(R.id.exitButton);
fileButton = (Button)findViewById(R.id.fileButton);
playButton.setOnClickListener(buttonListener);
pauseButton.setOnClickListener(buttonListener);
rewindButton.setOnClickListener(buttonListener);
exitButton.setOnClickListener(buttonListener);
fileButton.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");
//mWebView.loadUrl("javascript:setFlashPath('"+flashName+"')");
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;
case R.id.rewindButton:
//mWebView.loadUrl(flashName);
try {
mWebView.loadUrl("about:blank");
mWebView.loadUrl("file:///android_asset/sample/index.html");
Thread.sleep(1000);
mWebView.loadUrl("javascript:setFlashPath('"+flashName+"')");
} catch (InterruptedException e) {
Log.e(this.getClass().getName(), "Flash Rewind error: ", e);
}
break;
case R.id.fileButton:
Intent intent = new Intent();
intent.setClass(FlashActivity.this, FileBrowser.class);
startActivity(intent);
stopThread = true;
FlashActivity.this.finish();
break;
case R.id.exitButton:
quitDialog();
break;
default:
break;
}
}
};
public void showFlashProgress(float progressSize){
int size = (int)progressSize;
//Toast.makeText(this, size+"", Toast.LENGTH_SHORT).show();
mProgressBarHorizontal.setProgress(size);
}
private void quitDialog(){
new AlertDialog.Builder(this)
.setMessage("没胆就不要退出")
.setPositiveButton("比你有胆", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
stopThread = true;
FlashActivity.this.finish();
}
})
.setNegativeButton("怕你了", null)
.show();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
quitDialog();
break;
default:
break;
}
return false;
}
@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() {
try {
Thread.sleep(2000);
Message message = new Message();
message.what = FlashActivity.FLASH_START;
FlashActivity.this.myMessageHandler.sendMessage(message);
} catch (InterruptedException e1) {
Thread.currentThread().interrupt();
}
while(!stopThread && !Thread.currentThread().isInterrupted()){
try {
Thread.sleep(2000);
Message message2 = new Message();
message2.what = FlashActivity.PROGRESSBARSIZE;
FlashActivity.this.myMessageHandler.sendMessage(message2);
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}
}).start();
}
Handler myMessageHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case FlashActivity.PROGRESSBARSIZE:
mWebView.loadUrl("javascript:showcount()");
break;
case FlashActivity.FLASH_START:
mWebView.loadUrl("javascript:setFlashPath('"+flashName+"')");
Log.d(this.getClass().getName(),"Start flash : "+flashName);
mProgressDialog.dismiss();
break;
default:
break;
}
super.handleMessage(msg);
}
};
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
geolo简易flash播放器.rar (40个子文件)
GeoloMovie
bin
classes.dex 13KB
com
geolo
android
R$layout.class 391B
FileListAdapter.class 2KB
R$id.class 600B
R$drawable.class 397B
FileBrowser$1.class 540B
FileBrowser.class 3KB
R$attr.class 337B
R.class 524B
flash
FlashActivity$4.class 1KB
FlashActivity.class 6KB
FlashActivity$2.class 2KB
FlashActivity$CallJava.class 847B
FlashActivity$3.class 970B
FlashActivity$1.class 2KB
R$string.class 424B
sraverse
android
GeoloMovie.apk 377KB
resources.ap_ 369KB
res
drawable
icon.png 4KB
values
strings.xml 174B
layout
main.xml 1KB
assets
sample
flash.swf 360KB
play.js 815B
index.html 1008B
.svn
all-wcprops 1014B
prop-base
testFlash.swf.svn-base 53B
props
tmp
prop-base
props
text-base
text-base
index.html.svn-base 838B
testFlash.swf.svn-base 570KB
play.js.svn-base 750B
entries 847B
format 2B
default.properties 362B
gen
com
geolo
android
R.java 1KB
sraverse
android
proguard.cfg 1KB
.settings
src
com
geolo
android
FileListAdapter.java 937B
flash
FlashActivity.java 6KB
FileBrowser.java 2KB
.project 846B
.classpath 280B
AndroidManifest.xml 879B
共 40 条
- 1
资源评论
- Gogyoue2014-09-18一般般吧,不是想要的
- lihuaok2014-05-30资料的价值比较小,给个起点分吧
- 深海蛟龙(深圳)2014-06-11不是很好,用webView的鸡肋
- finishspan2013-12-08基本可用,不过觉得有点粗糙
chengtianljc
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JSP水产品销售系统源码.zip
- 基于JSP手机商城管理系统源码.zip
- 5.3.1_1二叉树的先中后序遍历.mp420240404-134540.png
- 基于JSP实现一个C语言教学网站平台源码.zip
- 抖音快手-课程网盘链接提取码下载 .txt
- 934742083249391XGOBOTV1.2.4.apk
- 课程设计基于OpenCV的材料缺陷检测程序python源码(含超详细注释).zip
- 基于python和百度EsayDL实现自动驾驶算法+基于ESP32开发板作为智能车主控芯片的自动驾驶智能车项目+源码(高分项目)
- Centos7-离线安装-MySQL5-7-31-tar包安装
- 蓝海平台带货-课程网盘链接提取码下载 .txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功