2008年12月31日 星期三

Android 入門 - 筆記本練習 1

建立一個簡單的筆記本,讓使用者可以新增,但目前無法編輯。將會學習:
  • 基本的 ListActivities 的功用
  • 使用 SQLite 來儲存資料
  • 使用 SimpleCursorAdapter 將資料丟進 ListView
  • 基本的畫面配置

參考資料 : http://code.google.com/intl/zh-TW/android/intro/tutorial-ex1.html



Step 1.
下載練習1,並且於 Eclipse 中新增此專案。

Step 2.
瀏覽一下 NotesDbAdapter.java ,他是用來讓筆記本能與 SQLite 溝通的。裡面定義了一些資料庫相關的資訊,使用 data 資料庫、notes 資料表、欄位分別是 _id、title、body...等等,還有資料庫操作的一些行為,close()、open()、createNote() 和 fetchAllNotes()...等等。

Step 3.
在 res/layout 下的 notepad_list.xml 是使用來定義筆記本清單的畫面。格式:
  • 以 <?xml version="1.0" encoding="utf-8"?> 開頭
  • 通常會接著 LinearLayout
  • 定義 Android 的 namespace 為 xmlns:android="http://schemas.android.com/apk/res/android"
Step 4.
新增 notepadd_list.xml 的內容。

Step 5.
於 res/layout 下新增 notepad_row.xml 並新增內容。此時 R.java 會產生相應的資料。

Step 6.
打開 Notepadv1.java 並且開始進行編輯。主要有:
  • onCreate()
  • onCreateOptionMenu()
  • onOptionsItemSelected()
Step 7.
改變 Notepadv1 的繼承從 Activity 為 ListActivity。

Step 8.
開始編寫 onCreate()。當此應用程式啟動時,會呼叫此方法。

Step 9.
開始編寫 onCreateOptionsMenu(),並於 res/values 新增相對應之值。用來產生新增筆記的選單。

Step 10.
開始編寫 onOptionsItemSelected()。將新增筆記的選單的事件產生行為來相互對應。

Step 11.
新增 createNote(),用來對 SQLite 新增筆記。

Step 12.
開始編寫 fillData() 。用來將資料與 layout 相對應,使資料能顯示於我們想要之位置。

Step 13.
執行吧!

什麼是 Android ?








Android 是 Google 所發佈的行動裝置的平台,並且提供開發人員使用 Java 程式語言來編寫應用程式。

詳細資料

2008年8月29日 星期五

jQuery Plugin : Step Carousel Viewer ( 圖片播放特效 )

1.先將 jqeury.js 以及 stepcaruousel.js 載入進來


2.CSS 樣式的設定,可以自行作適當的調整


3.接下來就是要顯示的圖片的架構,總共有三層,用 div 包住 image


4.最後就是將 Step Carousel 與 HTML 作連接,將下面的程式碼放在 body 裡面




點此 Demo 連結觀看

你會發現下面有四個連結的按鈕可以讓你直接操控圖片,這是因為 Step Carousel Viewer 有提供 stepBy 跟 stepTo 兩個 method 讓你呼叫,直接對圖片進行操控,只要加入以下的程式碼就可以



另外,如果想要讓照片自動輪播的話,其實很簡單,只要設定 interval 再配和 stepBy 即可,程式碼如下




點此 Demo 連結觀看

以上,就是 Step Carousel Viewer 所提供的圖片特效,如果想知道更詳細的資訊,可以到 Step Carousel Viewer 官方網站

2008年8月27日 星期三

Codes - Highlight Your Syntax

Codes:
http://codes.no-ip.info/

採用 CakePHP 與 SyntaxHighlighter 開發。

之前我就有在研究有關程式語言語法亮顯得實做,前陣子有發現有一個 javascript 寫成的函式庫,還蠻不錯用的,玩了一下就放著了。

由於這幾天都失眠,在昨天又失眠的情況下,我就索性的開發了這個網站。

網站主要的功能就是讓使用者上傳程式碼,然後可以在檢視的地方看到顯示行數,且亮顯頁面內的語法。並且有提供內嵌語法讓使用者可以放置在任意的網頁裡面。但是不提供刪除和修改的功能,因為現在沒有會員的系統。

當然,語法亮顯這榮耀是屬於 SytaxHighlighter的作者的,我只是拿來使用而已。它是遵循 GNU Lesser General Public License 的規範,這部份我還比較不清楚,不知道有沒有什麼版權的問題要注意。

接下來有時間的話,我會不定期的把網站加入會員系統,這樣就可以讓使用者管理自己上傳的程式碼了。

內嵌畫面如下:

2008年5月12日 星期一

Syntax Highlighter

今天小試了一下 Syntax Highlighter 這個玩意兒,還蠻不錯的,單純使用 Javascript 就可以來做程式語言語法的顯示。支援的語法有十二種,連 Ruby 都有,而且使用起來很簡單,一點都不難。

Language Aliases
C++ cpp, c, c++
C# c#, c-sharp, csharp
CSS css
Delphi delphi, pascal
Java java
Java Script js, jscript, javascript
PHP php
Python py, python
Ruby rb, ruby, rails, ror
Sql sql
VB vb, vb.net
XML/HTML xml, html, xhtml, xslt


我實做了一個 Syntax Highlight 的小程式 - syntax-highlight ,單純只做語法亮顯,沒有儲存的功能。偷偷看了一下他的程式,跟我當初想做語法亮顯的想法是相同的,而我覺得他做的更好的地方是他用了 Javascript ,跟我當初還想用 PHP 或是 Ruby 比起來,簡直是高招,完全不需要考慮到 server side 的語言,漂亮!

2008年4月17日 星期四

Firefox, Pidgin CPU 使用率 100%

Mozilla Firefox(正式縮寫Fx,非正式縮寫為FF),俗稱火狐(目前無官方中文名),是由Mozilla基金會網頁瀏覽器

Pidgin,前稱Gaim,是一套跨平台的開放原始碼即時通訊軟體

這兩套軟體一直以來都有 CPU 使用率飆高的問題,Pidgin 目前似乎沒有解決方法,Firefox 有人提出解決方法,但是我用了卻沒有什麼效果。

因為最近重灌電腦,懶得裝 MSN Live,因為太肥了,所以裝了 Pidgin。用起來都還蠻順的,只是有時候 CPU 會忽然飆高,就做了一些實驗。我發現原來是文字訊息裡面的表情圖案搞得鬼,要會動的那種。大概是因為 Pidgin 連表情圖案也是用"畫"出來的吧,所以圖案一多,才會讓 CPU 飆高,不知道 MSN 是如何顯示這些圖案的?我對這東西不瞭解 XD。

知道了 Pidgin CPU 飆高的原因之後,自然就會盡量避免。結果我就發現我 Firefox 也有這個問題,實驗了一下,確定是因為開啟 Flash 的東西就會讓 Firefox CPU 飆高。雖然根據網友提出的方法來修正,但是似乎沒有辦法解決它,因為他只是讓網頁開啟時,不要自動播放 Flash,但是當我按下播放時,CPU 還是會飆高!

那ㄟ安捏~

2008年4月10日 星期四

Google AJAX Language API

這幾天因為老闆的要求,要對網站進行多國語言的支援,翻來覆去,想不到有什麼新奇的作法,當我腦門閉塞的時候,想到了前幾個月 Google 釋出的 API,

Google AJAX Language API
它提供的主要功能,就是讓你可以透過 AJAX 請 Google替你進行翻譯。

哇~那這下不就天下太平了!於是開始著手進行測試和改版。

基本上,我是希望透過 API 來幫我對某些特定的字串進行翻譯,於是我把需要翻譯的字串都用 label 這個 tag 包起來,再透過 document.getElementsByTagName("label") 來取得所有的 label tags。等 javascript 寫好、tags 都標上後,開啟網頁,自豪的按下翻譯,整個臉就賽掉了…因為一個一個傳送、翻譯、接收實在太慢了,怎麼會這樣~

就在我見笑轉生氣的時候,我決定將所有網頁的內容送過去,而不是對特定字串進行翻譯。在我自以為聰明的時刻,他毫無動靜的靜靜待著,我也靜靜的面對著他,阿~~~他連翻譯都不翻阿!?後來去 Google Ajax Group 查了一下,原來 Language API 有限制翻譯的字串需在五百個字元以內。囧…好吝嗇阿,我不就花了一個晚上,結果一點收穫都沒有。

Google 提供的服務,是無可挑剔的沒錯,但是就 LanguageAPI 來說,還真是有點小氣的感覺,讓我有點失望…或許Google 有自己的考量,又或許因為現在還是第一版而已,我真誠的希望未來 Google 可以提供更好的翻譯解決方案,這可是可以造福許多程式設計師阿!( 懶惰的程式設計師 XD )