跳到主要內容

發表文章

目前顯示的是 二月, 2012的文章

新案上線:Heineken海尼根 Android App

大家好,我是奶綠茶
新案上線:Heineken海尼根 (iOS/Android)
這次小弟是開發 Android 的 App.
使用原生 Java 程式寫的, 不是用 air 喔。
這次的專案,讓我經驗值大增呀
之後再來補上這次用到的技術文章

點我進入頁面

Android 檢查網路是否連線中

大家好,我是奶綠茶
如何在 Android 檢查網路是否連線,
可以使用以下程式判斷:
public static boolean isNetworkAvailable( Context context ) { ConnectivityManager cm = (ConnectivityManager) context .getApplicationContext().getSystemService( Context.CONNECTIVITY_SERVICE); if (cm == null) { return false; } else { NetworkInfo[] infos = cm.getAllNetworkInfo(); if (infos != null) { for (NetworkInfo networkInfo : infos) { if(networkInfo.getState() == NetworkInfo.State.CONNECTED){ return true; } } } } return false; }
但這樣就只能限自行呼叫,如果想要用偵聽的話,可以寫一個 BroadcastReceiver,
同時在 intentFilter 加上 action android:name="android.net.conn.CONNECTIVITY_CHANGE"
public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive( Context context, Intent intent ) { boolean isNetworkAvailable = isNetworkAvailable(context); Toast.makeText(context, "isNetworkAvailable:"+isNetworkAvailable, Toast.LENGTH_LONG).show(); } public static boolea…

Android App 版本更新

大家好,我是奶綠茶
如何寫自動版本更新的提示呢?

1.先得到目前的版本:
int versionCode = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
2.在自動的主機放置一個txt檔,並輸入一個版本號
3.檢查遠端的版本是否比較新
4.是的話,就開始下載
Intent updateIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://xxx.apk")); context.startActivity(updateIntent); context.finish();
轉載請註明出處

Android Intent

在 Android 裡
要呼叫另一個 Activity 時
可以使用
方法1:
Intent intent = new Intent( 目前Activity.this, 目標Activity.class); startActivity(intent); 方法2:可以帶入字串
Intent intent = new Intent(); ComponentName cName = new ComponentName( 目前Activity, "目標Packge+Class的字串"); intent.setComponent(cName); startActivity(intent); 方法3:使用 Action , 需在 Mainifest.xml也加入宣告
Intent intent = new Intent(); intent.setAction("milkmidi.android.IntentAction"); startActivity(intent); <activity android:name="xxx.xxx.XXXActivity"> <intent-filter< <action android:name="milkmidi.android.IntentAction"> <category android:name="android.intent.category.DEFAULT"> </category<</action<</intent-filter> >/activity>

轉載請註明出處

Android Design Preview tool

Android 好用之 Preview tool
你經常在 Photoshop 排好 layout , 想丟到手機上看呈現的畫面嗎
現在 Google 推出一個小工具
就可以把 PC 端的畫面同步到手機上
Windows 和 Mac 皆可使用,大推啦


影片:
http://www.youtube.com/watch?feature=player_embedded&v=WvQrP1szEzg

下載:
http://code.google.com/p/android-ui-utils/downloads/list

Flash座標自動產生器

大家好,我是奶綠茶
最近 Mobile Device 的需求越來越大
設計師們在出 layout 時, 還要自動辛苦的寫座標,
小弟就寫一個 flash 座標自動產生器,
就可以快速產生, 準時下班(誤)

可安裝在 flash CS3 以上的版本
使用方法
下載 mxp 檔,
然後安裝
開啟 flash
把要出現座標的物件,轉成 MovieClip
從 Componenet 面版找到 DisplayPosition

拉到場景上
編譯,完成,出現,下班(誤)

原樣



發怖後


轉載請註明出處

Flash TLF Text Bug

大家好,我是奶綠茶
最近朋友問我一個載入 flash 檔的問題
外部載入一個 swf , 並呼叫裡面一個 public 的函式
這麼簡單的問題,馬上就可以決解,
結果卻花了我半小時,一查之下才發現是 TLF Text 產生的

被載入的 swf 主程式碼
public class LoadedDoc extends MovieClip{ public function LoadedDoc() { trace("LoadedDoc"); } public function test():void { trace( "test"); } } 載入的主程式碼
var loginLoader:Loader = new Loader(); var url:URLRequest = new URLRequest("alert_as.swf"); loginLoader.load(url); loginLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loginPageLoadCompleteHandler); public function loginPageLoadCompleteHandler(e:Event){ var _alertAS:MovieClip = e.currentTarget.loader.content as MovieClip; _alertAS.test(); } 正常來說,這樣寫可以成功呼叫,
但當你的被載入swf有使用新版的 TLF Text時
flash會很好心的幫你多包了一層 Class, 導至就產生了錯誤
用 Flash Decompile 來看一下
使用 TLF Text


使用 Classic Text



目前還想不到解法, 先筆記一下