2012-04-18

GIMP 簡易教學 (4) - 佈置您的繪圖環境

回溯 : GIMP 簡易教學(3) - 動作 與 復原

4 - 0  繪圖工具的擺設

電腦繪圖的工作大部分都是在螢幕上完成的, 完成一件作品可能會動用到不少工具, 這些無實體的工具如果能好好的認識它們並習慣它們的位置, 必能起到事半功倍的效果, 要不然 ~ 您可能會為了找不著一件工具或不曉得該如何處理而倍感挫折.


4 - 1  功能列表簡介

gimp 的功能項非常多, 從主視窗上的功能列表中 (檔案(F)  編輯(E)  選擇(S) ...) 您可以發現在各功能項中還包含了許多項目及子項目. gimp 大部分的功能項都羅列在其中, 如果您不小心把某些浮動視窗關閉而找不到時, 您都可以從功能列表中再將它找出來.

功能列表
後面有很多操作會使用到功能列表, 我會以類似下面這樣的方式來形容 :

功能表 -- 編輯 > 貼上
功能表 -- 檔案 > 儲存
功能表 -- 圖片 > 模式 > 灰階

每一個 ">" 的符號就代表進入一個項目或子項目, 這樣就可以省去我貼圖說明的步驟囉 ! 請練習操作這個步驟 :     

功能表 -- 求助 > 小提示 

建議您偶爾看看小提示可以學到不少操作方面的技巧喔 ! 或是選擇其他求助方式 (直接按 F1 鍵), 您必須要連上網路, 大部分的線上說明文件主要以英文為主.


4 - 2  浮動式對話盒與組合視窗的操作

您是否已經看過 [ 工具箱 ] 裡面的各項小工具 (預設位置在左側), 甚至已經嚐試用過了好幾項呢 ? 這一節主要是針對 [ 工具箱 ]  及 組合視窗 [ 圖層、色版、路徑 ... ] 的位置配置做說明.
圖 4 - 2 A   組合視窗

 請將 (圖 4 - 2 A) 右側組合視窗 [ 圖層、色版、路徑 ... ]  的下半部, 用紅色橢圓框起來的分頁一一拖出來 !

方法 : 以滑鼠左鍵點選分頁小圖示, 按住不放, 再移動滑鼠將該分頁拖出其所在的視窗範圍.

該組合視窗沒出現 ?
如果這個組合視窗並未出現在您的工作桌面, 可能是您之前不小心把它關閉了 ! 重新將此視窗叫回的方式如下 :   
功能表 -- 視窗 > 最近關閉的浮動項目
您可以看到子選單中會出現您最近關閉的浮動項目, 例如 : 圖層, 色版, 路徑 ...  點選之後就可以看到了. 請留意 ! 如果之前您在 (2 - 2 中) 功能表 -- 編輯 > 偏好設定 > 視窗管理 中, 把 [ 給視窗總管的提示 ] 那兩項狀態改成 [ 普通視窗 ] 時, 主視窗可能會遮住其他視窗, 請將主視窗縮小到底部的工作列, 看其他視窗是否被它擋住了.

如果還是叫不出該組合視窗, 請先跳到 4 -3 節, 教您如何讓它一一現形.


您若成功將紅色橢圓框中的所有分頁項目都拖曳出來時, 應該會如下圖所示 :
為了方便說明, 下圖中我將主視窗縮小到最底下的 Windows 工作列中.

圖 4 - 2 B  分離的浮動式對話盒  與  組合視窗
請比對圖 4 - 2 A 與 圖 4 - 2 B
可以發現原先接在 圖 4 - 2 A 組合視窗下半部的項目, 筆刷、圖樣、漸層、色票, 全都變成了浮動式對話盒 ! 我們繼續來拆解組合視窗吧 ! 請把組合視窗上半部的各個分頁項目, 圖層、色版、路徑、復原, 也全拖出來變成浮動式對話盒吧 ! 如下圖 (圖 4 - 2 C)

圖 4 - 2 C
有沒有發現, 原本整個組合視窗全分散開來了 ! 呵呵呵 ~ 整個畫面變得好熱鬧, 很好玩吧 ~ ^口^  啥米 ? 不知如何復原 ~ 那怎麼辦 ? 通通關閉嗎 ? 別急 ! 讓我們把它們拼回去吧 ! 您可以把每個浮動式對話盒想成是積木, 然後再一個一個接上去 ! 在拼接之前先介紹這些浮動式對話盒的共通結構說明 :

圖 4 - 2 D
我們以單一的浮動式對話盒來說明 : (圖 4 - 2 D)

功能項 : 
每個分頁項目都有屬於自己的功能項, 把滑鼠游標停駐在上面時, 會出現簡易說明. 這邊就不作說明囉, 學習一段時間後, 您會漸漸明瞭其作用.


拖曳接口 :
相當重要 ! 在進行拼接時一定要用滑鼠左鍵按住這個小區域不放 (圖 4 - 2 D 的綠色方框處) 然後進行拖曳, 再將它移到其他項目的 拖曳接口銜接槓 上進行結合. 當兩個項目以 拖曳接口拖曳接口 互相拼接後, 項目會橫向排列.

留意 ! 最常犯的錯誤是, 誤把標題欄 當成 拖曳接口, 結果拖了老半天就是拼接不上 ! 一定要注意啊 !

下圖例 : 我把 [ 漸層 ] 拖過去跟 [ 筆刷 ] 拼接. (圖 4 - 2 E  左) 為拼接前, 圖右為拼接後, 這樣兩個項目就拼接成一個小組合視窗囉 !

圖 4 - 2 E

銜接槓 :
位於對話盒的上、下兩處, 當拼接的位置在此處時, 會產生垂直排列.
(圖 4 - 2 F 左) 拼接前, 範例中, 我把 [ 圖層 ] 項目接到剛剛那個小組合視窗上方的 銜接槓上, 當滑鼠游標拖曳到 銜接槓 時, 請注意看 ! 銜接槓 會由灰色變成深藍色, 此時放開滑鼠左鍵, 銜接成功後, 呈現如圖右. 您可以任意拼接在上方或下方的 銜接槓 上.


圖 4 -2 F
您還可以在組合視窗中, 拖曳各分頁來調整分頁的上下或左右順序,  由於這種自由度十足的拼接法, 可讓您隨意拼接成您慣用的組合視窗風格.

練習 : 請按照 圖 4 - 2 A 的樣子拼接回去看看 !

圖  4 - 2 G

另外, 在 [ 工具箱 ] 視窗的下方, (圖 4 - 2 G 的紅色方框) 這也是個可以分離的項目喔 ! 此項目的名稱為 [ 工具選項 ], 內容主要是顯示其上方各項工具的參數設定, 您可以自行決定要將它移出或加入其他分頁, 我的習慣是不去更動它的位置.

如果您將 [ 工具選項 ] 關閉了, 當您選用某個工具時, 只要在工具小圖示上面點擊滑鼠左鍵兩次也可以將它叫出.












分頁設定鈕 :
圖 4 - 2 H

按下分頁設定鈕後, 出現如圖 4 - 2 H , 除了第一項為該項目的快速功能選項外, 其他的選項都大致相同 --- [ 加入分頁 ]、[ 關閉分頁 ]、[ 脫離分頁 ]、[ 將分頁鎖定停駐 ] ... 請您自行探索 ! 不難 ! 多試幾遍您就會知道其功能為何了.


4 - 3  善用功能列表


在功能列表中, 幾乎囊括了 gimp 的所有功能項, 上一節介紹的各種浮動對話盒, 您都可以在這個選項內找到 ~ 功能表 -- 視窗 > 浮動式對話盒 

圖 4 - 2 I


操作後, 出現如左圖 (圖 4 -2 I)
當您點選其中一個項目時, 若該項目並未出現在桌面上時, 該項目會以浮動對話盒的方式出現在螢幕上, 此時, 您可以運用上一節所學到的技巧將它拼接成組合視窗; 如果您點選的項目已經存在於桌面上時, 則該項目的拖曳接口處會閃動, 讓您得知它目前的位置.

為了操作方便與效率, 請自行斟酌是否要將所有的項目都排到桌面上; 或是將常用的幾個項目排出來即可.










最後, 下面有三個版面排列範例供您參考 !

範例 一 : 主視窗在左側     工具箱、浮動式對話盒在右側
範例二 : 主視窗在中央  其他視窗分據兩側


範例三 : 主視窗在右側  工具箱及浮動式對話盒在左側



2012-04-13

GIMP 簡易教學(3) - 動作 與 復原

回溯 : GIMP 簡易教學 (2) - 工具視窗設定

3-0   小試一下

迫不及待想試試如何作畫了嗎 ?
當主視窗還未載入任何圖檔(或新增檔案)之前是無法作畫的, 先來小試一下 ~

功能列表 -- 檔案 > 新增



接著出現如下的對話視窗
圖片尺寸可以直接指定 [ 寬度 ] 及 [ 高度 ], 單位預設是 [ 像素 ]


圖片尺寸也可以直接套用 [ 範本 ] 選項, 如圖, 預設有幾種款式可以選擇
這裡我們先選擇 640x480, 然後按 [ 確定 ]


原本灰色的主視窗(印有吉詳物的頭), 現在則變成了一張白色畫布, 左側與上緣還有標尺, 當滑鼠游標在畫布上移動時, 兩側標尺上的三角箭頭也會跟著移動喔 !


請看下圖 :
1  在工具箱中點選 [ 鉛筆 ]
2  紅色框起來的地方是 [ 鉛筆 ] 這項工具的參數設定欄位

當您選擇的工具不同, 參數設定欄位上的內容也會不同
在主視窗上用滑鼠畫畫看吧 !


當我們在畫布上進行繪製或選取範圍, 致使畫布的內容或狀態有所改變時, 每一個改變畫布內容的步驟, 在此我們就稱之為 [ 動作 ] .


3-1   復原

當畫錯了或想取消之前的幾個動作 ! [ 復原 ] 這個動作會是最常用到的功能

復原的方式 :
功能列表 -- 編輯 > 復原 ... (後面接的訊息會因動作不同而改變)
或  直接按 Ctrl + Z (按住 Ctrl 鍵不放, 再按 Z 鍵)
建議使用 Ctrl + Z 來復原上一個動作會較有效率 !

取消復原的方式 :
功能列表 -- 編輯 > 取消復原 ... (後面接的訊息會因動作不同而改變)
或  直接按 Ctrl + Y

另一個最直覺的復原方式是透過右邊這個視窗來操作
(此浮動視窗預設位置在主視窗的右方)
請先點選圖中以紅色圓圈圈起來的這個圖示
接著將出現復原記錄的欄位 (以紅色框起來的欄位)
此欄位會記錄從一開始到目前為止您對畫布所進行的所有動作, 您可以從這裡來選擇要倒回到哪個步驟, 當您選定某個步驟時, 畫布的狀態會復原到您所選的那個狀態, 當您想倒回很多動作或檢視之前到底做了哪些動作時, 相當方便 !

請留意 ! 假設您在畫布上已經進行了 10 個動作, 您想復原到第 3 個動作, 並從第 3 個動作開始編修畫布, 此時您在畫布上若採取了新的動作之後, 新的動作會把復原紀錄之前的第 4 到 第 10 個動作全部捨棄不再留下, 這點請特別注意 !



接續 : GIMP 簡易教學 (4) - 佈置您的繪圖環境

2012-04-12

GIMP 簡易教學 (2) - 工具視窗設定

回溯 : GIMP 簡易教學 (1) - 繪圖軟體 gimp 下載


2-0  使用 gimp 之前的心理建設

如果您之前只有操作過 [ 小畫家 ] 的經驗 ... 那您可要有心理準備, gimp 不像 [ 小畫家 ] 那麼容易上手 ! 這是學習功能強大的軟體時所必須承受的痛 ~ T_T

不過呢 ~
當您習慣 gimp 且得心應手之後, 嘿嘿 ~ 真的會令您愛不釋手 !
想把照片修得美美的嗎 ? 想加入一些特效嗎 ? 甚至創作一些具有藝術風格的圖樣來裝飾您的部落格或網站嗎 ? ... gimp 絕對能滿足您 ! 但是 ... 達仔不能保證您看完我的 gimp 簡易教學後就會變成電腦繪圖高手 ! XD
還是引不起您的興趣 ? 話說, 先前網路上盛傳一位西班牙科技阿嬤的 18 個建議中, 其中不是有一句 :

女孩會和懂得用 Photoshop  gimp 的人上床, 但會跟用 Excel 工作的人結婚

您考慮得怎樣 ? 我們進入主題吧 ~


2-1  視窗簡介

啟動 gimp 之後的畫面如下 : (您和我的畫面可能會有些許不同, 應大致相同)
下圖中, 我用三個紅色框框標示出三個主要視窗


1 號視窗 :  主視窗
位於正中央, 為主視窗, 在還未開啟任何檔案之前, 其標頭列名稱顯示為 [ GNU 圖片處理程式 ] , 您可以將這個主視窗當成是還未放上畫布的畫框.

2 號視窗 :  工具箱
這個視窗是 [ 工具箱 ] , 每個小圖示都代表一個工具, 當滑鼠游標停在小圖示上面時, 會出現關於該工具的名稱及簡介 ( 請開啟您的 gimp 軟體試著操作, 您把滑鼠游標停在我上面那張圖是不會有如上的反應滴 XD ) 各項功能後續再介紹.

3 號視窗 :  圖層, 色版, 路徑, 復原 ...
這也是相當重要的功能選項視窗, 大致上先有個印象概念就好 !

您可以隨意拖曳各視窗的位置, 不一定要按上述的位置排列.
方法 : 滑鼠游標移到該視窗的標頭列上, 按住滑鼠左鍵不放並進行拖曳.

您還可以改變三個視窗的胖瘦高矮 (寬度和高度)
方法 : 滑鼠游標移到該視窗的邊緣處 (上下左右皆可), 當游標變成双箭頭時, 按住滑鼠左鍵不放並拖曳滑鼠即可進行調整.

強烈建議 :
在還不熟悉 gimp 操作介面環境的狀況下, 請暫時保持原設定之編排, 以免不小心關閉了某些視窗選項, 卻不知該如何回復; 因而增添學習挫折感, 最後興趣缺缺 ~ 勇於嚐試錯誤也是一種學習方式, 好奇心 ~ 人皆有之, 達仔不會阻止您的, 因為我就是這樣玩(痛)過來的 XD

這套 gimp 軟體, 各式工具及功能很多, 想要一次全盤了解並不容易, 比較建議的學習方式就是一邊閱讀使用方式, 一邊實際操作 ! 以實作來代替死背 ! 這樣印象會比較深刻.


2-2  [ 主視窗 ] 與 [ 工具視窗 ] 的愛恨糾葛

不知您是否發現 ? 主視窗的位置不管如何拖曳, 變大變小, 好像都會被左右兩旁的工具視窗擋在後頭, 無法完全呈現在最前頭, 這是由於工具視窗被預設為不會被主視窗遮住的緣故, 如果您的螢幕夠大, 各視窗的位置配置都適當的話, 應該不會產生視窗互相遮蔽的現象, 由於達仔還在用 15 吋的 CRT 螢幕, 所以這個現象無法避免 ! 這在主視窗進行工作時會產生不小的困擾 ~ 如果這現象不會困擾您的話, 解決方式不妨看看就好, 不一定要去更改設定.

解決方式如下 :  ( 試試看 ! 光看圖不用聽我說故事, 是否能明瞭 ^ _ ^ )

主視窗的功能列 -- 編輯 > 偏好設定



進入偏好設定的選項視窗, 按步驟進行 :
1 - 選 [ 視窗管理]
2 - 請改變這兩項的狀態 (下圖 : 綠色的方框) 原設定值為 [ 工具視窗 ]
3 - 請點選狀態欄, 把狀態改成 [ 普通視窗 ] (下圖 : 紅色的方框)


4 按下 [ 確定 ] 後, 會出現如下圖的提醒視窗


提醒您 ~ 更動設定後, 需要重新啟動 gimp 設定才能生效, 請按 [ 確定 ]
回到原來的畫面你會發現主視窗還是會被遮住, 必須先關閉 gimp 再重新啟動, 剛剛的設定才會生效.


2-3  關閉 gimp


關閉 gimp 的方法 :
主視窗的功能列 -- 檔案 > 結束  或  按下主視窗右上角的 X 鈕
另外 : 關閉左側 [ 工具箱 ] 視窗也可以直接關閉 gimp
重新啟動後, 點選主視窗看看是否可以浮到最前頭  ^ _ ^

接續 : GIMP 簡易教學 (3) - 動作 與 復原

2012-04-11

GIMP 簡易教學 (1) - 繪圖軟體gimp下載

1-0   接觸 gimp

達仔並非美工、美術科班出身, 談論這方面的常識或許有些吃力 ~
畢竟我只是個外行, 基於自己的興趣與未來可能會應用到繪圖軟體, 因此必須略微涉獵這方面的知識, 藉由 PO 文或許可以讓有興趣的格友們能一同參與學習, 我仍在學習與摸索階段 (自學), 因此在介紹過程中難免疏漏或誤謬, 尚請先進前輩或格友們不吝給予指正 !

說到影像處理軟體 (或繪圖軟體) 大家比較耳熟能詳的大概是下面這幾套吧 ~ Photoshop、CorelDRAW、Corel Painter、Illustrator (illustrator) ... 等等

上述所提到的幾種繪圖軟體, 價格上並不便宜 ... 若是去電腦補習班學習電腦繪圖, 工具加學費算起來也是相當可觀 ! 但是, 學習成效絕對是比自學來得有效率 ! 前提是 ... 你的口袋不能太淺 XD

如果你跟我一樣沒有預算, 又想玩玩繪圖軟體該怎麼辦 ?
首選就是這個了 ~ GIMP ~ 這是一套 "自由軟體" (Free Software)
請注意 !  自由軟體 ≠ 免費軟體 (Freeware)
雖然大部分的自由軟體也是免費的, 但這兩者間卻存在著語意上的矛盾

不過別擔心, 下載這套 GIMP 是不會向你索取任何費用的 ^ __ ^


1-1   下載 gimp

請跟著下面的步驟, 先來下載吧 !
在此不提供自動連結, 請自行複製網址連結並下載 ~
gimp 首頁   www.gimp.org
下載 gimp 請點選首頁的下載按鈕


接著來到下載相關的頁面, 請在此頁面找到下面這一行字
 Download GIMP 2.6.11 - Installer for Windows XP SP2 or later
這裡要下載的是適用於 Windows 作業系統的 gimp , 版本號為 2.6.11
點選後開始下載 ...


我用的是 FireFox 瀏覽器, 所以詢問下載檔案的畫面如上, 按儲存 ...
下載完成後, 直接執行 gimp-2.6.11-i386-setup-1.exe 即可自動完成安裝
安裝過程快慢視電腦硬體的性能而定, 需要花費一點時間 ...
(這裡省略安裝過程)


1-2   啟動 gimp
安裝完成後可以在桌面上看到 gimp 的吉祥物這個捷徑
双擊此捷徑即可開啟 gimp, 成功開啟 gimp 的畫面如下 :
注意到了嗎 ? 有支援繁體中文喔 ! (安裝時會自動轉為你的作業系統語系)


接續 : GIMP 簡易教學 (2) - 工具視窗設定

2012-04-07

簡介物件導向

在軟體的世界中, 雖說是 [ 物件 ], 但實際上並沒有真正的實體存在, 嚴格說來就是由一堆電子信號 ON 與 OFF 交替所構成的複雜網絡而已, [ 物件 ] 之說只是以人類較能接受的形式來稱呼, [ 物件 ] 僅是一種抽象的意涵, 千萬不要太過執著於字面上的意義.

身為軟體開發者, 我只在乎所學的技術是否能協助我完成整個開發工作, 至於物件導向的優劣問題與未來發展就留給專家學者們去論述 ! 我之前也說過了, 物件導向的概念教學隨處都可以搜尋到, 我不想在這裡多加詳述, 僅針對物件導向的概念做一番簡略描述.

在談論本篇主題前, 我假設您對函式的用法已經相當瞭解.
函式的宣告、函式的呼叫、參數 (引數) 的代入、函式的傳回值 ... 等等

先做個簡單測試 :

(修飾詞不同)
private void myFunction0 ( ) { .... }
public void myFunction1( ) { .... }

(傳回值 與 參數 的運用)
public int myFunction2 (int num1, int num2 ) { .... }
public double myFunction3 (double num1, double num2) { .... }

上面的幾個函式如果您無法理解它們的意義, 那麼請您先把 [ 函式 ] 這個課題學好後再來碰觸物件導向的知識會比較好, 因為 [ 函式 ] 一詞在物件導向的 class (類別) 中將會改以 [ 方法 ] 來稱呼.

class (類別) 與 instance (物件) 的關係 : 我用圖來說明



在程式設計階段中, 你可以將 class 當成是一個模板來設計, 透過 new 關鍵字就可以產生與 class 相關的 [ 物件 ]; 在程式執行期間 (Runtime), 實際參與運作的就是這些 [ 物件 ].

我用簡略的程式碼來表示 : (Java)
===============================
class Monster {
    屬性 : (略)
    方法 : (略)
}
.......
Monstre myMonster = new Monster(); // 產生一隻 Monster 物件 myMonster
===============================
這個 class (類別) 的名稱就是 Monster, 而 myMonster 就是 instance (物件).


我們來創造更多與 Monster 相關的物件 ~ 沿用之前的 class Monster { .... }
====================================
// 以 ArrayList<> 方式宣告物件陣列清單
ArrayList<Monster> myMonster = new ArrayList<Monster>();
....
for (int i=0; i<10; i++) {                  // 準備創造10 個
      Monster m = new Monster();   // 先產生單隻的 Monster 物件 m
      myMonster.add(m);                // 將單隻的物件 m 陸續加入陣列清單中
}
====================================

2012-04-06

物件導向在哪裡 ?

[ 物件導向 ] 的設計概念只要網搜一下就能找出一堆, 所以, 我不打算在這裡解釋何謂物件導向, 而且我也不擅長論述這方面的知識, 如果你已經讀過許多有關物件導向這方面的書籍或網路常識, 最後你得問你自己一個問題 ~ 我到底會不會用 ?

站在程式設計者的立場, 不管你懂不懂或是要不要運用 [ 物件導向 ] 的概念來設計程式, 目前來說 ~ 恐怕都由不得你了 !

觀察目前的各種程式語言版本, 當你開啟編輯器進入程式編輯畫面時, 畫面上只要出現 class 的字樣, 就表示你已經身在物件導向的懷抱中了 ! 下面我舉幾個例子給你看 : ( 藍色字樣為個別的程式語言編輯器, 請注意裡面的 class 字樣 )

( Android Java & Eclipse )
public class Hello extends Activity {
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        .......... (略)


( Microsoft Visual C# )
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        ........ (略)



( 其他 C++ 或 JAVA 版本 )
 public class myfirst {
    public static void main(String[] args) {
       ..... (略)


( Microsoft Visual Basic )
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
........... (略)



有沒有發現到處都有 class 的蹤影 ? 而 class (類別) 就是物件導向的基礎 !
我想告訴您的是 ~ 物件導向的設計概念已經無所不在, 只要您是學習軟體設計 (程式設計) 的人都一定會接觸到這個議題. 下次我再用一些實際的範例來談談.

2012-04-05

Android EditText 元件的資料轉換問題

Android 的 EditText 元件允許使用者輸入資料, 但是不管輸入的資料是數字還是其他字元, 在程式運作中都會將輸入的資料一律視為字串 (或字元), 若要將輸入的資料進行數學運算時, 必須先做型態轉換, 起初在型態轉換方面讓我吃了不少苦頭 ~ 特別在這裡作個筆記與大家分享, 順便也提醒自己.

下面我用畫面並配合程式來說明 :

下圖中, 我配置了兩個 EditText 與 一個 [開始] 按鈕, "+" 與 "=" 兩個符號都是 TextView, 包括顯示相加後的答案欄也是 TextView 元件. 而兩個 EditText 元件的 numeric 屬性皆設定為 integer, 讓它只能接受數字的輸入, 按下 [開始] 鈕後, 我們希望得到兩數相加後的答案 .


直接來看核心程式的部份: (紅色字體部份)

public class StrAndInt extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final EditText editText1 = (EditText)findViewById(R.id.editText1);
        final EditText editText2 = (EditText)findViewById(R.id.editText2);
        final Button button1 = (Button)findViewById(R.id.button1);
        final TextView textView2 = (TextView)findViewById(R.id.textView2);
       
        button1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                textView2.setText(
                        editText1.getText().toString() +
                        editText2.getText().toString()
                );
            }
        });
    }
}

上面紅色部份的程式說明 :
我將兩個 EditText 的內容進行相加, 運算的結果再呈現到 textView2 中. 下圖中 23 + 12 竟然不是 35 ? 因為資料被當成字串來處理的緣故, 所以23 + 12 = 2312, 但 ~這不是我們要的結果 !

不對! 這結果不是我們要的 ~
把原先的核心程式碼註解掉或刪除掉, 改成如下 :

                int a = Integer.parseInt(editText1.getText().toString());
                int b = Integer.parseInt(editText2.getText().toString());

                textView2.setText(a+b);

這次設定了兩個 int 變數 a、b 來存放兩個經過數值轉換的 EditText 內容, 接著在 textView2 的 setText() 中直接帶入 a + b .... 看看能否成功 ~

這次出了個大錯誤 ! (如下圖) 帶入 textView2.setText() 的資料必須是 String 型態的資料, 數值型態是無法接受的 ~ 更不用說要在裡面進行兩數相加了 ! 

錯誤警告! 錯誤原因並不會在此呈現出來

再接再厲 ! 再把核心碼改成如下 :

                int a = Integer.parseInt(editText1.getText().toString());
                int b = Integer.parseInt(editText2.getText().toString());
              
                textView2.setText(String.valueOf(a+b));
 
 54 + 13 = 67   終於對了 ! 把兩個輸入的資料轉換成數值型態後, 運算完的結果 (a + b) 還必須再轉換成 String 型態, 才能符合 textView2.setText() 的需求. 轉換來轉換去真是有些累人 ~

終於對了 !
結論 :
數值與字串 (String) 型態互相轉換, 要多活用這兩個內建函式 :

( 輸入 int 傳回 String ) :   String.valueOf( int )
( 輸入 String 傳回 int ) :   Integer.parseInt( String )

2012-04-01

開發 Android App 使用哪種程式語言 ?

如果您想從事 Android App 的開發, 那麼您最好具備 JAVA 程式語言基礎, 假如您對程式設計完全不懂的話, 建議您可以先從 JAVA 的基礎開始學起 !

至今為止, 電腦程式語言的種類較為人熟知的大概就以下幾種 :
C 、C ++、Basic、JAVA .... 甚至從一個語言類別中又衍生出各種不同的型態, 例如 : Turbo C、Quick Basic、Visual C++、Visual Basic .... 為數相當多 !

對初學者而言, 應該先從哪種程式語言開始入門, 各方說法大概都莫衷一是, 我個人是覺得多學一點倒是沒有什麼壞處, 雖然每種程式語言在語法上的 [ 用詞 ] 都存在著差異, 但是在整個邏輯架構上並沒有什麼不同, 真正的問題則在於實際應用的層面上, 您必須去了解, 目前所學的這種程式語言到底可以應用在哪方面 ? 除了選用哪種程式語言做為你的工具外, 還要注意你開發完成的東西可以適用在哪個 [ 作業系統 ] 的平台上喔 !

回到主題, 學會 JAVA 程式語言對你在 Android App 的開發上會有極大的助益, 但並不表示這樣就能得心應手喔 ! 因為 Android 還有一些制式的語法需要多瞭解與熟練, 包括一些 Android 專屬的函式庫, 用法與引用的方式都要重新去學習才行 !

如果您有心想從事 Android App 的開發, 您可以從 Android Developers 這個網站中看看相關訊息並好好瞭解一番 .

Android Developers 網站的網址如下 :
http://developer.android.com/index.html

有興趣嗎 ? 達仔歡迎您一起加入開發者的行列喔 !

開發 Android App 的 Eclipse 編輯器

搜尋此網誌