跳到主要內容

發表文章

目前顯示的是 九月, 2011的文章

AIR3.0 Native extensions Example Part1

大家好,我是奶綠茶
Adobe AIR3.0 即將發怖
其中最酷的新功能就是可以呼叫原生的程式
在這奶綠茶我就以 Android 來做個 Demo。
1.呼叫 Android toast

2.呼叫 Android AlertDialog

3.呼叫 Android DatePickerDialog(非同步,並得到所選的日期回傳給 flash)


4.List Dialog

5.得到 DeviceID

教學Step:
1.下載 AIR3.0 SDK(目前是 RC 1 3.0.0.388)
http://labs.adobe.com/downloads/air3.html

2.安裝 FlashDevelop4
3.安裝 Ant (方便下 Command Line, 不裝也可以)
http://ant.apache.org/
4.安裝 AntPlugin for FD4
http://code.google.com/p/fd-ant-plugin/

5.FlashAction3
AIR3.0裡,多出了一個 ExtensionContext 類別,用來呼叫原生的程式碼
var extension:ExtensionContext = ExtensionContext.createExtensionContext("Native ID", null);
其中Native ID指的是你要呼叫的 id 名稱
同時要在你的 application.xml 宣告

<extensions>
<extensionID>milkmidi.air3.demo</extensionID>
</extensions>

結著就可以使用
extension.call("funcationName", ...params);
來呼叫
如果是同步的話,extendsion 就會直接 return 值
非同步的話,就使用 addEvetnListener( StatusEvent.STAUS ) 來偵聽

6.Android 端
使用 Eclipse 開啟新的 Android Project
將 AIR3.0 SDK 裡的 lib\android\FlashRuntimeExtensions.jar 加到 Complie Path 裡
public class AIR3Cont…

Android Custom Title

大家好,我是奶綠茶,
今天來分享如何客制化 Android 的 Title Bar
先看預設的樣式


接著改變 Style, 變成水果風

先製作 title 的 layout, my_title.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button style="@style/title_bar_button_back" android:id="@+id/back_btn" android:layout_marginLeft="5dp" android:text="Back" /><!-- 這裡是 Back 鍵 --> <TextView style="@style/title_bar_text" android:id="@+id/title_txt" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Title" /> </RelativeLayout>
style.xml
<style name="my_theme" parent="@android:style/Theme.Light"> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleSize">40.0dip</item> <item nam…

Android Save 圖片至 SD Card

大家好,我是奶綠茶
今天來分享一下如果將 Android 的畫面拍成圖檔並存在 SD Card 裡
首先要在 Manifest.xml 裡開啟 寫入的權限
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
接著要把 View 轉成 Bitmap 物件
final ViewGroup _v = (ViewGroup) findViewById(R.id.root); Bitmap bm = Bitmap.createBitmap(_v.getWidth(), _v.getHeight(), Bitmap.Config.RGB_565); _v.draw(new Canvas(bm)); 透過 File 來存檔 先檢查使用者有沒有 SD Card
public static boolean checkSDCard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } return false; } 存檔 public static void saveBitmap(String pFolderPath, Bitmap pBitmap, String pFileName) throws IOException { String _folderPath = pFolderPath; if (_folderPath.lastIndexOf("/") == -1) { _folderPath += "/"; } File _file = new File(_folderPath + pFileName); OutputStream _outStream = new FileOutputStream(_file); pBitmap.compress(Bitmap.CompressFormat.…

Android ImageView ScaleType

大家好,我是奶綠茶
在 Android 裡的 ImageView 元件,可以放置圖片
其中可以設定 ScaleType
官方 API 說明

為了方便測試,在這先準備二張圖片
450x500和 500x450
筆者以 320x480 的 Emulator 來測試

Layout 的部份放上二個 RadioButton 用來切換二圖不同 Size 的圖片
再放上六個 Button 來顯示圖片同 Size 的圖片 再放上六個 Button 來顯示圖片
主程式
package milkmidi.tutorial.imagescaletype; import android.app.Activity; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager.LayoutParams; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.PopupWindow; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; public class ImageViewScaleTypeMainActivity extends Activity implements OnCheckedChangeListener { Drawable mCurrentDrawable; @Override public void onCreate(Bundle savedInstanceState) { super.o…