投影片 1

Size: px
Start display at page:

Download "投影片 1"

Transcription

1 Chapter 12 Android 動畫程式設計

2 前言 Android 在動畫程式設計上有非常多成熟的工具可以使用 例如說 :Canvas 畫布 ViewFlipper 動畫等, 另外也可以使用 OpenGL 去設計 2D/3D 圖形或動畫, 使手機多媒體或是操作介面有更多爆炸性的發展

3 畫布 / 畫筆

4 Canvas Canvas 物件在 Java 應用程式上已經非常成熟, 用於 Android 上也是開發動畫或 UI 的一個好工具 Canvas 就像手機中的畫布, 可以在 Canvas 上繪製圖形或者圖片, 一般我們可以使用以下四個組成部分, 在 Android 上繪製圖形 : 點陣圖 ( 包含像素 ) Canvas 畫布 ( 包含繪畫內容, 寫入點陣圖 ) 初始圖形 ( 例如 Rect Bitmap text 等等 ) Paint( 用來描述上面初始圖形的顏色和類型 等等 )

5 Canvas View 類別的 ondraw 方法會傳入一個 Canvas 物件, 用來繪製元件界面的畫布 在實作 ondraw 方法時, 經常會看到呼叫到 save 和 restore 方法, 下面就解釋這兩個方法的作用 : save: 保存 Canvas 的狀態 save 之後, 可以呼叫 Canvas 中的位移 縮放 旋轉 裁切 等等操作 restore: 回復 Canvas 之前保存的狀態 防止 save 後對 Canvas 執行的操作對後續繪製有所影響

6 Canvas save 和 restore 要同時使用, 如果 restore 呼叫次數比 save 多, 會引發 Error 下面將有一簡易範例解說 Canvas 中較重要的部分, 如圖所示

7 Canvas 程式碼 (CanvasEX.java): package ncu.bnlab.canvasexample; import android.app.activity; import android.os.bundle; public class CanvasEX extends Activity DrawAction public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); drawaction = new DrawAction(this); setcontentview(drawaction); /* requestfocus 方法用於設置新焦點 */ drawaction.requestfocus();

8 Canvas 程式碼 (DrawAction.java): public void ondraw(canvas canvas) /* 取得寬度 */ int px = getmeasuredwidth(); int py = getmeasuredwidth(); /* 設定線畫筆顏色 */ linepaint.setcolor(color.white); /* 設置為 true 可消除邊緣效果 */ linepaint.setantialias(true); /* 設定背景畫筆顏色 */ backgroundpaint.setcolor(color.blue); backgroundpaint.setantialias(true); 由於程式碼過多, 完整程式碼請參考光碟中 CanvasEX.java DrawAction.java /* 設定方塊畫筆顏色 */ rectpaint.setcolor(color.red); rectpaint.setantialias(true); /* 於畫布繪製圖形 */ canvas.drawrect(0, 0, px, py, backgroundpaint); /* 呼叫 save 方法儲存目前狀態 */ canvas.save();... /* 呼叫 restore 方法 */ canvas.restore(); /* 於畫布繪製方塊 */ canvas.drawrect(px, py, 300, 300, rectpaint);

9 Canvas 從範例可看出, 其中紅色的方塊位置有明顯差異 造成這樣的原因是因為將 Canvas 中 save 與 restore 方法註解, 所有的圖都是在旋轉 90 後的畫布上繪製 當執行完 ondraw 方法, 系統自動將畫布恢復回來

10 Paint Paint 類別擁有樣式與顏色資訊, 主要是有關於如何繪製幾何圖形 文字及點陣圖的方法, 範例如圖所示

11 Paint 布局文件 (res/layout/main.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout xmlns:android=" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="previous" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next" /> </LinearLayout> <ViewFlipper android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" /> </LinearLayout>

12 Paint 程式碼 (PaintEX.java): package ncu.bnlab.paintexample; import android.app.activity; import android.os.bundle; import android.view.window; import public class PaintEX extends Activity DrawAction public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); /* getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, WindowManager.LayoutParams.FLAG_FULLSCREEN); */ /* requestwindowfeature(window.feature_no_title); */ drawaction = new DrawAction(this); setcontentview(drawaction); /* requestfocus 方法用於設置新焦點 */ drawaction.requestfocus();

13 Paint 程式碼 -1(DrawAction.java): 程式碼 -2(DrawAction.java): List<Point> points = new ArrayList<Point>(); Paint paint = new Paint(); public DrawAction(Context context) super(context); /* 設定可取得焦點 */ setfocusable(true); /* 設定在觸控模式可取得焦點 */ setfocusableintouchmode(true); /* 設定監聽器 */ this.setontouchlistener(this); /* 設定畫筆顏色 */ paint.setcolor(color.white); public void ondraw(canvas canvas) for (Point point : points) /* 於畫布上繪製圖形 */ canvas.drawcircle(point.x, point.y, 5, paint); public boolean ontouch(view view, MotionEvent event) Point point = new Point(); /* 取得目前觸碰螢幕之 x,y 值 */ point.x = event.getx(); point.y = event.gety(); /* 新增點至 Point 物件 */ points.add(point); /* 用於更新 View */ invalidate(); return true;

14 Paint 了解上述 Canvas 與 Paint 結合的範例後, 接著解說關於在 Android 中如何顯示字體, 因為字體在所有應用中是最常被使用到的 字體一般擁有的屬性有大小 顏色 對齊方式 粗體 斜體 下劃線等

15 Paint 在 Android 中使用 Typeface 類別來定義字體 Typeface 可以指定字體和字體風格, 並可用 Paint 繪製字型,Typeface 就類似 Paint 中的其它屬性 textsize,textskewx,textscalex... 等等 下表為字體常數的定義 : 字體 (Typeface) DEFAULT DEFAULT_BOLD MONOSPACE SANS_SERIF SERIF

16 Paint 這些字體常數, 在應用程式中是可以直接使用的, 例如說 :Typeface. SERIF 另外 Typeface 也包含了一些用來處理字體的方法, 例如 : 建立字體 Create(), 取得字體屬性 getstyle() isbold() isitalic() 等等 Typeface 類別不僅定義了字體, 還包括粗體 (Bold) 斜體 (Italic)

17 Paint 其它對顯示 String 有影響的因素, 都可以在 Paint 類別中找到它們的方法, 如下頁表所示 : 功能字體 對齊方式字體大小顏色 下劃線 Paint 中的相關操作 settypeface(typeface typeface) gettypeface() settextalign(paint.align align) Paint.Align gettextalign() gettextsize() settextsize(float textsize) setcolor(int color) getcolor() isunderlinetext() setunderlinetext(boolean underlinetext)

18 Paint 至此讀者應對 Paint 有基本的瞭解, 實際上在 Paint 中還有其他一些功能, 例如用 Alpha 來處理透明度 用 Dither 來處理混色... 等等, 詳細內容可參考 Android SDK

19 Paint 接著就以一個簡單的範例來演練 Typeface 與 Paint 結合的做法, 程式如圖所示

20 Paint 首先需將 ttf 字型檔加入專案中的 fonts 資料夾 ( 於 asset 下新建 ), 如圖所示

21 Paint 程式碼 (TypefaceEX.java): private static class FontView extends View /* Paint.ANTI_ALIAS_FLAG 為消除鋸齒 */ private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private Typeface typeface; public FontView(Context context) super(context); /* 自定義字體 */ typeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/verdanaz.ttf"); // typeface = Typeface.createFromFile("/sdcard/verdanaz.ttf"); /* 設定字體大小 */ protected void ondraw(canvas canvas) canvas.drawcolor(color.white); /* 繪製預設字體 */ paint.settypeface(null); canvas.drawtext("default Font", 10, 100, paint); /* 繪製自定義字體 */ paint.settypeface(typeface); canvas.drawtext("custom Font", 10, 200, paint);

22 動畫效果

23 ViewFlipper ViewFlipper 可以包含多個 View) 且 View 之間的切換有動畫效果, 例如說漸變效果 它也可以根據時間週期切換顯示項目, 像是一個幻燈片播放的效果, 範例如圖所示

24 ViewFlipper ViewAnimator 的作用是為 FrameLayout 裡面的 View 切換提供動畫效果 ViewAnimator 類別有幾個和動畫相關的方法 : setinanimation: 設定 View 進入螢幕時候使用的動畫 setoutanimation: 設定 View 退出螢幕時候使用的動畫 shownext: 呼叫此方法顯示 Layout 裡面的下一個 View showprevious: 呼叫此方法顯示 Layout 裡面的上一個 View

25 ViewFlipper 一般不直接使用 ViewAnimator 而是使用它的兩個子類別 ViewFlipper 和 ViewSwitcher ViewFlipper 可以用來指定 Layout 內多個 View 之間的切換效果, 可以一次指定也可以每次切換的時候都指定單獨的效果 此類別額外提供了如下幾個方法 : isflipping: 用來判斷 View 切換是否正在進行 setfilpinterval: 設定 View 之間切換的時間間隔 startflipping: 使用上面設定的時間間隔來切換所有 View, 會以幻燈片方式進行 stopflipping: 停止 View 切換

26 ViewFlipper 布局文件 (res/layout/main.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout xmlns:android=" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="previous" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next" /> </LinearLayout> <ViewFlipper android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" /> </LinearLayout>

27 ViewFlipper 程式碼 -1(ViewFlipperEX.java): public class ViewFlipperEX extends Activity public final static int VIEW_TEXT = 0; public final static int VIEW_IMAGE = 1; private Button btnprevious; private Button btnnext; private ViewFlipper viewflipper; /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); initview(); /* 新增圖檔及文字於 viewflipper 此 View 中 */ viewflipper.addview( addtextbytext("android 1.6") ); viewflipper.addview( addimagebyid(r.drawable.play) ); viewflipper.addview( addtextbytext("android 2.0") ); viewflipper.addview( addimagebyid(r.drawable.normal) ); viewflipper.addview( addtextbytext("htc Hero") );

28 ViewFlipper 程式碼 -2(ViewFlipperEX.java): 程式碼 -3(ViewFlipperEX.java): private OnClickListener listener = new OnClickListener() public void onclick(view v) /* 判斷點擊到哪個按鈕 */ switch(v.getid()) /* 點擊到上一張按鈕就呼叫 showprevious 方法 */ case R.id.btnPrevious: viewflipper.showprevious(); break; ; /* 點擊到下一張按鈕就呼叫 shownext 方法 */ case R.id.btnNext: viewflipper.shownext(); break; public View addtextbytext(string text) /* 設定 TextView 屬性並回傳 */ TextView textview = new TextView(this); textview.settext(text); textview.setgravity(1); return textview; public View addimagebyid(int id) /* 設定 ImageView 屬性並回傳 */ ImageView imageview = new ImageView(this); imageview.setimageresource(id); return imageview; 完整程式碼請參考光碟中 ViewFlipperEX.java

29 ViewSwitcher ViewSwitcher 簡單來說就是 Switcher 在兩個 View 之間切換, 可以透過 ViewSwitcher 指定一個 ViewSwitcher.ViewFactory 來建立兩個 View 此類別具有兩個子類別 ImageSwitcher TextSwitcher 分別用於圖片和文字切換, 範例如下頁圖所示

30 程式範例圖 : ViewSwitcher

31 ViewSwitcher 一開始要在 res 資料夾底下新增兩個 XML 檔案, 接著將一開始新增的兩個 XML 檔, 作為兩個 View, 並使用 ViewSwitcher 的方法去做兩個 View 之間的切換 當按下讀取更多的按鈕時,ViewSwitcher 就會切換到另外一個 View, 當背景作業處理完成後, 才會切換回原本的 View

32 ViewSwitcher 布局文件 (res/layout/button.xml): <?xml version="1.0" encoding="utf-8"?> <!-- 使用 ViewSwitcher 切換的第一個 View--> <Button xmlns:android=" android:text="load More Items" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:minheight="?android:attr/listpreferreditemheight" android:textcolor="#ffffff" android:clickable="true" android:onclick="onclick" />

33 ViewSwitcher 布局文件 (res/layout/progress.xml): <?xml version="1.0" encoding="utf-8"?> <!-- 使用 ViewSwitcher 切換的第二個 View--> <RelativeLayout xmlns:android=" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:minheight="?android:attr/listpreferreditemheight"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centervertical="true" /> <TextView android:text="loading " android:textappearance="?android:attr/textappearancelarge" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_centervertical="true" android:gravity="center" android:padding="10dip" android:textcolor="#ffffff" /> </RelativeLayout>

34 ViewSwitcher 程式碼 -1(ViewSwitcherEX.java): public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); switcher = new ViewSwitcher(this); button = (Button)View.inflate(this, R.layout.button, null); progress = View.inflate(this, R.layout.progress, null); /* 將 button 與 progressbar 加入 switcher 中 */ switcher.addview(button); switcher.addview(progress); /* 取得 ListView 並將 switcher 加入 */ getlistview().addfooterview(switcher); /* 設定 ListAdapter, 其中第二個參數可選擇樣式 */ setlistadapter(new ArrayAdapter(this, android.r.layout.simple_list_item_1, ITEMS));

35 ViewSwitcher 程式碼 -2(ViewSwitcherEX.java): private class getmoreitems extends protected Object doinbackground(object... params) /* 此處可撰寫新增項目之程式碼 */ try /* 執行緒會呼叫 sleep 方法 */ Thread.sleep(3000); catch (InterruptedException e) e.printstacktrace(); return null; 完整程式碼請參考光碟中 protected void onpostexecute(object result) switcher.showprevious();

36 OpenGL

37 前言 在 Android 中支援高效能的 3D 圖形, 主要是透過 OpenGL/ES API 所謂的 ES API 就是 OpenGL 所規範給嵌入式設備使用的

38 GLSurfaceView GLSurfaceView 是一個新 API, 開始使用是從 Android1.5 版 GLSurfaceView 可以使得創造一個 OpenGL ES 應用程式更為容易, 通常用於遊戲或快速更新畫面的應用程式上

39 GLSurfaceView GLSurfaceView 具有下列優點 : 提供了 glue code 來連接 OpenGL ES 的視圖系統 提供了 glue code 使得 OpenGL ES 與活動生命週期一起工作 可以更簡單的選擇適合的 Frame buffer 像素格式 建立與管理一個獨立的繪圖執行緒, 使得動畫效果更為流暢 提供簡易的除錯工具

40 GLSurfaceView 下面將以一個簡易的範例使讀者更了解 GLSurfaceView 的使用方式, 範例執行結果如圖所示

41 GLSurfaceView 程式碼 -1(GLSurfaceViewEX.java): class ClearGLSurfaceView extends GLSurfaceView private ClearRenderer mrenderer; public ClearGLSurfaceView(Context context) super(context); mrenderer = new ClearRenderer(); setrenderer(mrenderer); public boolean ontouchevent(final MotionEvent event) /* 啟動執行緒, 並傳入座標設定顏色 */ queueevent(new Runnable() public void run() mrenderer.setcolor(event.getx() / getwidth(), event.gety() / getheight(), 1.0f); ); return true; 程式碼 -2(GLSurfaceViewEX.java): class ClearRenderer implements GLSurfaceView.Renderer private float mred; private float mgreen; private float mblue; public void onsurfacecreated(gl10 gl, EGLConfig config) public void onsurfacechanged(gl10 gl, int w, int h) /* 決定視窗上的繪圖區域 */ gl.glviewport(0, 0, w, h); public void ondrawframe(gl10 gl) /* 清除顏色 buffer */ gl.glclearcolor(mred, mgreen, mblue, 1.0f); gl.glclear(gl10.gl_color_buffer_bit GL10.GL_DEPTH_BUFFER_BIT); public void setcolor(float r, float g, float b) mred = r; mgreen = g; mblue = b;

42 SurfaceView 依照傳統的作法, 要快速更新畫面或做遊戲之類的應用, 通常會新增執行緒處理工作後, 使用 handler 傳送訊息給 View 顯示畫面或是在非使用者執行緒呼叫 View

43 SurfaceView SurfaceView 通常用於遊戲中或是需快速更新畫面之應用程式, 藉此來加快程式畫面運行速度 SurfaceView 也是 View 的一種, 但有獨立 buffer, 稱為 surface 由於此 buffer 不需透過 Android framework 做畫面更新, 可直接對應到畫面上的區塊, 提供更好的效能

44 SurfaceView 但實際上還是間接更新到畫面上, 但少了 Android framework 這一層, 而且可透過硬體加速 ( 加速的功能視平台而定 ), 範例程式如圖所示

45 SurfaceView 程式碼 -1(SurfaceViewEX.java): 程式碼 -2(SurfaceViewEX.java): SurfaceHolder holder; public AnimView(Context context) super(context); /* 取得 Holder */ holder = this.getholder(); //holder public void run() while( running ) try /* 鎖定畫布 */ canvas = holder.lockcanvas(null); /* 新增 Callback */ holder.addcallback(this); /* 移動畫布 */ canvas.translate(dx, dy); paint = new Paint(); public void surfacechanged(surfaceholder holder, int format, int width, int height) /* 啟動執行緒繪圖 */ new Thread(new AnimThread(holder)).start(); 完整程式碼請參考光碟中 SurfaceViewEX.java /* 繪製畫布 */ canvas.drawcolor(color.black); /* 於畫布繪製圖形 */ canvas.drawrect(new RectF( pleft,ptop,pright,pbottom ), paint); dx++; catch(exception ex) finally /* 解鎖畫布 */ holder.unlockcanvasandpost(canvas); /* 移動邊界限制 */ if(width <= dx) running = false;

46 SurfaceView 在這個範例當中, 需覆寫 surfacechanged 方法, 在此方法中啟動執行緒, 使用 translate 方法, 並設定條件, 達成方塊移動的動畫效果 藉此範例可以了解到有關 SurfaceView 中的標準用法, 流程將於後面敘述說明

47 SurfaceView 流程 當程式需要更好的效能時, 繼承 SurfaceView 也是一種方式 透過 SurfaceView,canvas 不需透過 ondraw() 取得 可以透過呼叫 SurfaceView.getHolder() 取得 surface holder, 而 SurfaceHolder.lockCanvas() 會傳回 SkCanvas Native code 可以在這個 SkCanvas 上作畫, 然後呼叫 SurfaceHolder.unlockCanvasAndPost(), 將內容更新到畫面上

48 SurfaceView 注意事項 每次更新畫面前, 都要透過 SurfaceHolder.lockCanvas() 取得一個新的 SkCanvas, 在這個 canvas 上繪圖 繪圖完成後都需呼叫 SurfaceHolder.unlockCanvasAndPost() 進行更新, 才能正確的更新畫面

49 Matrix Android 的 2D 繪圖功能其實是非常強大的, 尤其是 matrix 透過 matrix, 可以非常容易的控制 Android 繪圖座標的位移 旋轉 縮放 等等功能 範例程式執行結果如下頁圖所示

50 Matrix 點選縮小按鈕可將旁邊圖示縮小 ; 選放大按鈕則可將圖示放大, 其它還有像 setrotate setsincos setscale settranslate 等等方法可以應用

51 Matrix 布局文件 (res/layout/main.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android=" <Button android:layout_width="90px" android:layout_height="60px" android:text=" 縮小 " android:textsize="18sp" /> <Button android:layout_width="90px" android:layout_height="60px" android:text=" 放大 " android:textsize="18sp" /> <ImageView android:layout_width="90px" android:layout_height="60px" /> </LinearLayout>

52 Matrix 程式碼 (MatrixEX.java): /* 取得 bitmap 寬高 */ int bmpwidth = bitmap.getwidth(); int bmpheight = bitmap.getheight(); /* 設定縮小比例 */ double scale = 0.7; scalewidth = (float)(scalewidth * scale); scaleheight = (float)(scaleheight * scale); Matrix matrix = new Matrix(); /* 縮放圖片 */ matrix.postscale(scalewidth, scaleheight); /* 重新縮放 Bitmap */ Bitmap resizebmp = Bitmap.createBitmap(bitmap, 0, 0, bmpwidth, bmpheight, matrix, true); if(id == 0) /* 移除 View */ linearlayout.removeview(imageview); else linearlayout.removeview((imageview)findviewbyid(id)); 完整程式碼請參考光碟中 MatrixEX.java id++; ImageView imageview = new ImageView(MatrixEX.this); imageview.setid(id); imageview.setimagebitmap(resizebmp); linearlayout.addview(imageview); setcontentview(linearlayout);

53 課後習題 1. Android 的 Canvas 元件是由哪四個部分所組成的 2. 如果 Canvas 的 restore 呼叫次數比 save 多, 會發生什麼樣的情況? 3. Paint 通常與兩哪種元件結合使用? 4. 修改 Paint 範例, 使得範例可顯示文字 5. ViewAnimator 包含哪兩個子類別? 6. 請在 ViewSwitcher 範例中加入點選 LoadMoreItems 後的項目 7. 解釋 OpenGL 與 OpenES 的差別 8. 一般開發遊戲通常使用本章中哪種元件? 是否可用其它元件開發?

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

PowerPoint 簡報

PowerPoint 簡報 Paint 繪圖板 JAVA 程式設計 指導老師 : 鄞宗賢 組員 : 4A3G0901 劉彥佐 4A3G0907 韓偉志 畫面預覽 匯入參數 package paint; import java.awt.*; import java.awt.event.*; import javax.swing.*; 主程式 public class paint{ public static void main(string[]

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Chapter 10

Chapter 10 Chapter 10 多媒體程式開發 Widget Widget 簡介 android.widget 套件包含了許多視覺性的 UI 元素, 可用來將操作界面展示在應用程式畫面上 要熟悉 Android 多媒體程式的開發, 必須從 widget 套件著手, 因此本章所舉的範例, 便是以 android.widget 套件的應用為中心 Gallery 簡介 Gallery 是一個水平的清單, 移動清單時,

More information

Android 开发教程

Android 开发教程 封面 1 GUI 可视化设计器 DroidDraw DroidDraw 是一个基于 Java Swing 的 Android 界面设计器, 可以通过它来生成复杂的 Android Layout XML 文 件,Android 的 Layout 和 Swing Layout 中有很好的对应, 设计器的代码编写起来比较容易 2 AnDroidDraw AnDroidDraw 是一个与 DroidDraw

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Database_001

Database_001 作者 : 林致宇日期 :2011/10/26 主要參考來源 : http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applicat ions/ 問題 : 如在存取一個已經建立好的資料庫? 解答 : 有一些應用程式會需要讀取已經建立好的資料庫, 例如一個試題測驗應用程式, 裡面的試題可能已經於電腦上, 使用任何的

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4 JAVA Extension 0..\Example\Ch0\ \ T.html..\Example\Ch0\ \ T.txt T.txt..\Example\Ch0\ \ T_Ok.html 提示 :. Marquee Marquee Font Color #FFFFFF BG Color #867bf Width 90 Height 50. T.txt Ctrl+C your scrolling

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

Microsoft Word - Chap16.doc

Microsoft Word - Chap16.doc Android 2D 繪圖和 3D OpenGL 繪圖 從本章節你可以學習到 : 如何用 Drawable 物件來繪製圖形 繪製您的圖像或動畫到畫面佈局的圖像顯示物件 (ImageView) 上 繪製圖形直接描繪到畫布 (Canvas) 上 形狀圖像繪製物件 ShapeDrawable 創作二度空間的動畫, 補間動畫繪製物件 Tween Animation 創作二度空間的動畫, 頁框動畫繪製物件 Frame

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Microsoft Word - 02.目錄.doc

Microsoft Word - 02.目錄.doc 目錄 -1- 目錄 序 準備篇 一 使用說明... 0-2 二 標示說明... 0-6 三 注意事項... 0-7 第一類 Android 基礎知識 -UI 設計及語法應用 101. 整存整付計算機... 1-2 102. 電費計算機... 1-8 103. 點餐系統... 1-18 104. 計算 BMI 值... 1-23 105. MENU 功能選單... 1-36 106. 畫廊展示...

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一八年秋北京 Android 是什么 Android 不仅仅是一个操作系统, 它更是一个完整的软件框架 Android 基于 Linux 内核 2005 年 Google 公司收购了 Android 公司 Google 公司选择使用 Apache

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

Microsoft Word - AEL CH05.doc

Microsoft Word - AEL CH05.doc 5-2 AutoCompleteTextView AutoCompleteTextView 非常類似 EditText, 屬於文字輸入方塊 ; 不過 AutoCompleteTextView 會在使用者輸入幾個字時就會顯示提示文字, 方便使用者選取而無需輸入所有文字, 是一種體貼使用者輸入的設計 AutoCompleteTextView 的提示列表與 Spinner 的選項列表建立方式相同, 需要建立字串陣列來儲存欲提示的文字

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK 2 l 跨裝置網頁設計 Android ios Windows 8 BlackBerry OS Android HTML 5 HTML 5 HTML 4.01 HTML 5 CSS 3 CSS 3 CSS 2.01 CSS 3 2D/3D PC JavaScript

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp 01 1.6 Spyder Anaconda Spyder Python Spyder Python Spyder Spyder 1.6.1 Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Spyder Python File

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 章 5.1 异常处理 异常 (Exception) 指程序运行过程中出现的非正常现象, 例如用户输入错误 需要处理的文件不存在 在网络上传输数据但网络没有连接等 由于异常情况总是可能发生, 良好健壮的应用程序除了具备用户所要求的基本功能外, 还应该具备预见并处理可能发生的各种异常的功能 所以, 开发应用程序时要充分考虑到各种可能发生的异常情况, 使程序具有较强的容错能力 通常把这种对异常情况进行处理的技术称为异常处理

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

More information

Microsoft PowerPoint - ch03

Microsoft PowerPoint - ch03 第三章基礎繪圖 (Basic Graphics) 3 1 簡介 3 2 Graphics Class 3 3 3 直線繪製 3 4 長方形繪製 3 5 橢圓形繪製 3 6 弧線繪製 3 7 多邊形繪製 3 8 圖形剪裁 3 9 圖形複製 3 10 習題 (Exercises) 3 1 簡介 在基礎圖文繪製上, 除了前章所探討的文字繪製之外, 本章將介紹基礎圖形之繪製 類別 Graphics 提供了各類圖形之繪製方法程序,

More information

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas Contents 目錄 chapter 1 1-1... 1-2 1-2... 1-3 HTML5... 1-3... 1-5 1-3... 1-9 Web Storage... 1-9... 1-10 1-4 HTML5... 1-14... 1-14... 1-15 HTML5... 1-15... 1-15... 1-16 1-5... 1-18 Apps... 1-18 HTML5 Cache

More information

Microsoft Word - 第4章 3D相册.doc

Microsoft Word - 第4章 3D相册.doc 第 4 章 3D 相册 学习目标 u 掌握相册界面的开发, 实现相册的立体与倒影效果 在现实生活中, 我们浏览照片时, 不同的相册软件有不同的浏览效果 本章主要实现了一个 3D 效果的相册, 该相册中的图片可以循环滑动展示 4.1 3D 相册 任务综述 相册界面主要是展示一组图片的立体效果, 并显示每个图片的倒影, 左右滑动可以切换不同的图片到 界面的中间位置, 同时在图片下方显示当前图片的标题,

More information

Microsoft PowerPoint - ch02

Microsoft PowerPoint - ch02 第 一 篇 基 礎 圖 文 動 畫 (Basic Graphics / Animation) 2 1 簡 介 2 2 Frame Class 2 3 執 行 緒 繪 圖 流 程 2 4 Font Class 2 5 Color Class 2 6 中 文 處 理 2 7 習 題 (Exercises) 第 二 章 文 字 繪 製 (Words) 2 1 簡 介 本 書 探 討 的 是 動 畫 遊 戲,

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

投影片 1

投影片 1 計算機程式及實習 期末報告 題目 : 六宿炒翻天 班級 : 奈米一乙姓名 : 陳洋翼學號 :4A514050 老師 : 謝慶存 程式說明 設計結帳系統, 選擇數量後, 在按下計算, 將會顯示總金額 若是老人或小孩, 將可享 8 折或 9 折的優惠 程式畫面 填選數量 在火腿蛋炒飯的數量選擇 1, 並按下計算, 可得總金額 50 元 程式畫面 打折 填選完後, 若客人是小孩或老人, 選擇欲打折項目,

More information

Microsoft PowerPoint - 第14章.ppt

Microsoft PowerPoint - 第14章.ppt Windows 繪圖的認識 在視窗 Form 表單上, 繪製圖案, 必須要有幾個動作 : Step 1: 定義及取得 Graphics 物件,Graphics 代表 Windows 中的繪圖區域, 範圍為 Form 表單視窗 Step 2: 利用 Graphics 物件來進行各種繪圖 Step 3: 必須釋放 Graphics 物件, 使用 Dispose( ) 釋放 [ 範例 ] 設計一個程式,

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

More information

PowerPoint 簡報

PowerPoint 簡報 UI 設計 Android 專案目錄架構 Android 專案建立後會自動產生 3 個主要目錄 src:java 程式檔案 res: 資源 ( 文字 圖形 聲音檔案等 ) 與 UI 設定有關的 layout 檔 此目錄內檔案名稱只能為小寫字母 數字 _. gen:r.java 根據 res 目錄內容自動產生 不要去修改 R.java Android 中所有的資源檔案 ( 圖片 XML 等 ) 命名都必須使用英文小寫,

More information

人民邮电

人民邮电 第 2 章 布 局 布 局 是 所 有 带 界 面 的 Android 程 序 的 开 端 布 局 应 用 得 好 坏 直 接 决 定 了 程 序 的 用 户 体 验 虽 然 布 局 看 似 没 有 组 件 复 杂, 但 也 涉 及 到 了 很 多 技 巧 在 各 大 公 司 的 面 试 题 中 也 会 经 常 遇 到 关 于 布 局 的 一 些 问 题 通 过 这 些 问 题 可 以 考 查 应

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

使用Cassandra和Spark 2.0实现Rest API服务

使用Cassandra和Spark 2.0实现Rest API服务 使用 Cassandra 和 Spark 2.0 实现 Rest API 服务 在这篇文章中, 我将介绍如何在 Spark 中使用 Akkahttp 并结合 Cassandra 实现 REST 服务, 在这个系统中 Cassandra 用于数据的存储 我们已经见识到 Spark 的威力, 如果和 Cassandra 正确地结合可以实现更强大的系统 我们先创建一个 build.sbt 文件, 内容如下

More information

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計 337 18 Adobe Flash CS4 Professional MovieClip ActionScript Flash ActionScript Flash Flash Flash MovieClip MovieClip ActionScript ( ) MovieClip Flash Sprite ActionScript MovieClip ActionScript 3.0 Shape

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

Chapter 4

Chapter 4 Chapter 4 手機控制項應用 元件佈局 線性佈局共有兩個方向 : 垂直 (vertical) 水帄 (horizontal) 決定垂直或是水帄的屬性為 Orientation android:orientation="vertical" 線性佈局就是將在 < LinearLayout > 內的元件以線性的方式來呈現

More information

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F 1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o

More information

06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b

06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b 06 01 action JavaScript action jquery jquery AJAX 04 4-1 CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS background-color camel-cased DOM backgroundcolor.css()

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

AutoCAD 用戶如何使用 ArchiCAD

AutoCAD 用戶如何使用 ArchiCAD AutoCAD 用戶如何使用 ArchiCAD AutoCAD用戶如何使用ArchiCAD ( 中文版 ) 由 Scott MacKenzie, Simon Gilbert, Geoffrey Moore Langdon, David Byrnes, Ralph Grabowski 編寫 龍庭資訊有限公司 1/73 - 2. 3. 4. -

More information

移动平台期末展示

移动平台期末展示 移动平台开发作品展示 周芳张文杰谢殊凡 作品简介 一 作品简介 Ø 应用名称 : 一笔画 Ø 功能 : 随机生成一笔画图案 玩家可以在屏幕上描绘图案, 程序会判定绘制成功或者失败 Ø 设计目的 : 制作一个休闲益智类的小游戏 设计思路 二 设计思路 Ø 1. 自动生成随机的一笔画 奇顶点 : 指数为奇数的顶点 偶顶点 : 指数为偶数的顶点 一笔画图形的必要条件是 : 奇顶点数目是 0 或者 2 Ø

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

在 ongodb 中实现强事务

在 ongodb 中实现强事务 在 ongodb 中实现强事务 600+ employees 2,000+ customers 13 offices worldwide 15,000,000+ Downloads RANK DBMS MODEL SCORE GROWTH (20 MO) 1. Oracle Rela+onal DBMS 1,442-5% 2. MySQL Rela+onal DBMS 1,294 2% 3.

More information

untitled

untitled ArcGIS Server Web services Web services Application Web services Web Catalog ArcGIS Server Web services 6-2 Web services? Internet (SOAP) :, : Credit card authentication, shopping carts GIS:, locator services,

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

ebook50-11

ebook50-11 11 Wi n d o w s C A D 53 M F C 54 55 56 57 58 M F C 11.1 53 11-1 11-1 MFC M F C C D C Wi n d o w s Wi n d o w s 4 11 199 1. 1) W M _ PA I N T p W n d C W n d C D C * p D C = p W n d GetDC( ); 2) p W n

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1 Android On Linux 簡易安裝開發教學 Installing Google Android SDK 2.0.1 On Ubuntu 9.10 Desktop 目 錄 一 ANDROID 開發系統需求... 1 1. 作業系統... 1 2. 開發工具... 1 二 安裝 ANDROID 開發工具... 1 1. 安裝 JDK... 1 2. 使用 APT-GET 安裝... 2 3. 使用套件管理程式安裝...

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information