android播放swf文件
生活随笔
收集整理的這篇文章主要介紹了
android播放swf文件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
雖然Adobe已經(jīng)宣稱不再支持android下的flash播放了,但是在HTML5沒有熱火起來之前還是有許多地方需要用到flash的,比如希望在android機(jī)子上使用以前flash制作的一些游戲或者教學(xué)動(dòng)畫。這里寫了個(gè)demo使用android的WebView控件和Adobe的flash插件來播放本地的卡丁車的swf文件,在android機(jī)子上插上USB鍵盤就可以在android平臺(tái)機(jī)子上玩了。
首先上個(gè)播放的效果圖
代碼架構(gòu)
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><WebViewandroid:id="@+id/flashwebview"android:layout_width="fill_parent"android:layout_height="fill_parent"/> </LinearLayout> package com.example.flashplayer;import java.util.List;import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.view.Menu; import android.webkit.WebChromeClient; import android.webkit.WebSettings.PluginState; import android.webkit.WebView; import android.widget.ProgressBar;public class MainActivity extends Activity {private WebView mWebView;private Handler mHandler=new Handler();private String mFlashFilename;private ProgressDialog mProgressDialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mWebView=(WebView)findViewById(R.id.flashwebview);setTitle("flash播放器");setTitleColor(Color.RED);mWebView.getSettings().setPluginsEnabled(true);mWebView.getSettings().setPluginState(PluginState.ON);Intent intent = getIntent();String str = intent.getStringExtra("flashName");if(str==null)mFlashFilename=new String("file:///android_asset/kaka.swf");elsemFlashFilename=str;try {Thread.sleep(500);// 主線程暫停下,否則容易白屏,原因未知} catch (InterruptedException e) {// TODO 自動(dòng)生成的 catch 塊 e.printStackTrace();}mProgressDialog=ProgressDialog.show(this, "請稍等...", "加載flash中...", true);mWebView.setWebChromeClient(new WebChromeClient(){@Overridepublic void onProgressChanged(WebView view, int newProgress) {// TODO Auto-generated method stubsuper.onProgressChanged(view, newProgress);System.out.println("newProgress:"+String.valueOf(newProgress));if(newProgress==100){new Handler().postDelayed(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub mProgressDialog.dismiss();}}, 500);}}});if(checkinstallornotadobeflashapk()){mWebView.loadUrl(mFlashFilename);}else{installadobeapk();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu);return true;}//退出時(shí)關(guān)閉flash播放 @Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();mWebView.destroy();this.finish();System.gc();}//按下Back按鍵時(shí)關(guān)閉flash播放 @Overridepublic void onBackPressed() {// TODO Auto-generated method stub mWebView.destroy();this.finish();System.gc();super.onBackPressed();}//后臺(tái)運(yùn)行 @Overrideprotected void onUserLeaveHint() {// TODO Auto-generated method stub mWebView.destroy();this.finish();System.gc();super.onUserLeaveHint();}//檢查機(jī)子是否安裝的有Adobe Flash相關(guān)APK private boolean checkinstallornotadobeflashapk() {PackageManager pm = getPackageManager();List<PackageInfo> infoList = pm.getInstalledPackages(PackageManager.GET_SERVICES);for (PackageInfo info : infoList) {if ("com.adobe.flashplayer".equals(info.packageName)) {return true;}}return false;}//安裝Adobe Flash APKprivate void installadobeapk() {mWebView.addJavascriptInterface(new AndroidBridge(), "android");mWebView.loadUrl("file:///android_asset/go_market.html");}private class AndroidBridge {public void goMarket() {mHandler.post(new Runnable() {public void run() {Intent installIntent = new Intent("android.intent.action.VIEW");installIntent.setData(Uri.parse("market://details?id=com.adobe.flashplayer"));startActivity(installIntent);}});}} }PS:需要在android機(jī)子上安裝Adobe_Flash_Player_11.1.112.61.apk,android系統(tǒng)版本是4.0.3。
地址:https://pan.baidu.com/s/1eSCtDEa#list/path=%2F
轉(zhuǎn) :?http://blog.csdn.net/yearafteryear/article/details/8959475#reply
總結(jié)
以上是生活随笔為你收集整理的android播放swf文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java免流量浏览器_流量费白菜价:腾讯
- 下一篇: 2022 ACM Fellow名单出炉,