轻微伤怎么赔偿:WebView播放flash - - JavaEye技术网站

来源:百度文库 编辑:中财网 时间:2024/04/27 18:40:27

WebView播放flash

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

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

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

1. 项目结构图



2. 程序运行图



3.MainActivity .java  主类

view plaincopy to clipboardprint?
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);  
        }  
    };  

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

view plaincopy to clipboardprint?
 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
            android:layout_height="wrap_content" /> 
          
            style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:max="100" 
        android:progress="0" android:secondaryProgress="0" /> 
          
            android:layout_width="fill_parent" android:layout_height="wrap_content">