2011年6月4日 星期六

[音樂]鄭宜農搶聽會


        宜農的搶聽會,一切起因都是宅的力量所造成,掛在FB上就看到最新的訊息,總共二十五名也被我搶到了!對宜農的第一印象是在夏天的尾巴,我想大部分的人都是,那部影片或許對時的我有點太年輕,宜農也太過青澀,沒有產生心裡迴響。
第二次的印象是在西藏自由音樂節,在那天我第一次被宜農的魅力吸引,然而引起共鳴的原因或許不是單單因為歌曲,因為他很美麗,而是被他聲音的直率與一首歌一首歌之間的談話。還是很有印象,她唱得很用力,用力到我覺得他比較適合拿電吉他在舞台上,很急切著想要告訴大家些什麼思想般,對談之間也讓我感受到他早不同於我當初的印象,是個抗爭歌手般站在這樣一個舞台上。
當下只覺得,我是多麼的軟弱,對於自己所在乎在意的人事物。

獨立日,是我喜歡上宜農的第一首歌,這或許也透露出一點自己反社會的思想。
被一位年輕少女這樣的歌唱、宣勢,整首歌的技巧如何根本就不會有人去評斷,因為他最有意義的一面已經真真實實的呈現在大家的眼前了,或許就因為這首歌的性質與宜農的音樂的純粹,一把木吉他不多不少,更能讓我們針對訴說的事情有所感觸,旋律是動聽的,情緒是澎湃的。
說著說著,也不能不提Sayonala給我的衝擊,台語詞聽著聽著,這樣的滄桑感真的是大大跳脫鄭宜農的印象。我只能說好棒,我好喜歡這樣的一首歌,他是這麼的特別。

6/3的害羞搶聽會,其實我也不知道是哪裡出了問題,宜農是熱情的,設定好的位置,新穎的家具位子,都讓大家有點ㄍㄧㄥ吧。
好,那些好像都不是重點,宜農在我的心目中又變了個樣子,在今晚。
是撫慰,
是憂愁。
是大雨的城市,
是眼淚是不捨,這是我當下的感受。

太陽,
一種完美的溫暖,
你、我的太陽,
喚醒門前的土壤,好濕潤的語句,
讓我不停止的悸動,噗通噗通,
畫面浮現,
是多麼可愛的景象。

最終還是回到現實,
終究敵人還是自己呀,
點醒了今夜的我。

清唱的宜農,讓我更感受到歌曲的細膩情感,是貼近彼此生活的,
雖然不常看表演,但每次看到都讓我有,ㄝ? 鄭宜農原來是這樣呀的感受...
不知道是太厲害呢,還是進步太快呢?
答案,就等海王星發售吧。



2011年6月2日 星期四

[Android]Activity流程

每個android程式都一定會有一個Activity,或是一個類別是繼承Activity,通常實作都會運用到下面幾個函式,並且他們之間有個流程順序:

上圖裏有三個主要迴路
(1)entire lifetime:
一個Activity的entire lifetime是由onCreate(Bundle)開始,一直到onDestroy()結束。一個Activity可以把所有的資源設定寫在onCreate裏,一直到onDestroy()時,再釋放出來。比如說,你需要一個執行緒在背景執行網路下載資料,這個thread就可以在onCreate()裏建立起來,一直到onDestroy()再把thread釋放不要用。

[AndEngine]遊戲場景大小設定

遊戲場景的大小,跟Camera、Engine這兩類別息息相關。
設定順序:Camera-->Engine


public Engine onLoadEngine() {//讀取引擎 ,回傳Engine
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true/false(代表是否顯示狀態列), ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
                    
}

有or沒有顯示手機狀態列的情況下,也會影響你該設定的大小數據:

比例與螢幕相同,畫質較高720X480。

[AndEngine]Getting Started Tutorial ll

這是將Getting Started Tutorial l 的程式更詳細的解說內部function。




[AndEngine]Getting Started Tutorial

要如何開始用AndEngine開發呢 ? 官方有個教學影片,照著做就沒錯了!

同樣,先開一個新專案,因為教學影片用android1.6版本,所以我也先照做。

專案創建好後,要在裡面開一個新資料夾,叫做lib。

[AndEngine]AndEngine Source Code released!

Hello Community,
yesterday I’ve finally been pushing the Source Code of AndEngine to Google Code. Check it out here:
在昨天,我已經把AndEngine最終版本的Source Code放上Google Code。看看這裡:
So if you want to get a first view on how to make games with AndEngine, you should take a look at this repository:
所以,如果你想要知道如何利用AndEngine製作遊戲,你應該看一下這個知識庫。
Additionally I pushed out (most of) the extensions that I’m developing:
除此之外,我也放上大部分我所開發的的擴充軟體。
You might wonder why did I choose Mercurial (hg) over git and svn ?
  1. svn might be well known, but it can easily be broken.
  2. git is not supported by Google Code, also the Windows support is worse than for hg.
  3. hg is a well working Distributed Version Control System, with good Windows support and it works with Google Code.
All you need to pull using hg is the HGEclipse / MercurialEclipse -Plugin for Eclipse.

你可能會想要知道為什麼我選擇Mercurial (hg)而不是 git和svn呢?
1.svn可能是眾所皆知的,但是他很容易有狀況。
2.git不被Google Code所支持,Windows對他的支援度比起hg也較差。
3.hg 是一個運作很不錯的Distributed Version Control System,對Windows支援良好,也可以在Google Code上運作。
你只需要利用 HGEclipse / MercurialEclipse這個hg  Eclipse Plugin來pull 。

Best Regards,
Nicolas

參考資料:

[AndEngine]Hello world! Hello AndEngine!

Hello Community,
I think its kind of obvious that this blog will cover the development of….
AndEngine Badge
AndEngine – Android 2D OpenGL Game Engine.
For now I’ve only set up this blog and the forums. While the blog is meant to cover general public announcements, like mayor releases and noteworthy projects built with AndEngine, the forums are there to cover all active development, bugs and feature-request.
So stay tuned, bookmark this blog and register at the forums for some exciting stuff soon =)
Meanwhile take a look at the Showcase.
Best Regards,
Nicolas

哈嚕 各位社群的朋友,
我想這blog非常明顯將會涵蓋AndEngine - Android 2D OpenGL 遊戲引擎的發展
從現在起我開始設置此blog還有論壇,然而這blog只有包含到一般官方的公告,像是主要發行以及利用AndEngine開發,值得注意的專案。在論壇裡包含所以主動開發、臭蟲、還有功能要求。
敬請期待,將這個blog加入書籤,還有為了快速獲得一些有趣的東西,註冊論壇會員!
祝福各位
Nicolas

[AndEngine] 利用Tortiosehg把AndEngine專案都抓下來

利用Tortiosehg把AndEngine專案都抓下來

 
安裝完成

[Android、Sqlite]SQLite Database Browser 基本使用


       SQLite Database Browser 其實非常簡單,功能沒有很複雜,可以把你的.sql檔匯入,編輯資料表欄位,增加資料表,或是改變裡面的data。最後再把它輸出。


最初的畫面。


[Android、Sqlite]SQLite Database Browser介紹

       這是從資策會Android應用程式設計課程講義上看到的軟體,SQLite Database Browser可以視覺化的調整Sqlite內部的資料。

SQLite Database Browser:http://sqlitebrowser.sourceforge.net/

What it is
SQLite Database Browser is a freeware, public domain, open source visual tool used to create, design and edit database files compatible with SQLite. It is meant to be used for users and developers that want to create databases, edit and search data using a familiar spreadsheet-like interface, without the need to learn complicated SQL commands. Controls and wizards are available for users to:

2011年4月15日 星期五

[Android]Bitmap圖形、拖拉後的反方向速度

        這是 [Android]利用Java Class繼承View來呈現Android畫面的再延伸,已經可以利用滑鼠移動球體,現在要加上加速度的慣性,還有bitmap的使用。

目標:(1)利用bitmap匯入圖片。
         (2)加速度移動。

開新的一個專案,再把JavaDrawView貼過來。

2011年4月8日 星期五

[Android]Project coding注意事項

變數命名:名稱不怕長,怕的是你兩三個月後看不懂他。

範例
 float m_fCircleCenterX = 100.0f; //m_代表是類別等級的變數,別忘了一個.java就是一個類別。
 boolean m_bRunning =true; //f:代筆他的型別為float
                                                //名稱:就盡最大可能表現出它的意義,向這個就是圓心的座標X
                                               //,當發現盡力還是表達很模糊,就請一定要加上註解。
float l_fdt = 0.1f;                  //l_區域變數
long l_nStartTime=0         //n:Number

邏輯判斷式:開頭上註解,解釋其內容。在邏輯太多層下,不容易辨識括弧,在末括號加上註解。

  //判定手指點擊是否在圓內。
if((m_fCircleCenterX - m_fCircleRadius) <= e_fPosX &&
e_fPosX <= (m_fCircleCenterX + m_fCircleRadius))
{
if((m_fCircleCenterY - m_fCircleRadius) <= e_fPosY &&
e_fPosY <= (m_fCircleCenterY + m_fCircleRadius))
{
m_bIsTouchDownCircle = true;
text=e_fPosX+","+e_fPosY;
}ifend

}ifend

XML部分:

id也請讓他意義化,text要讓他能符合多國語系的格式,也就是要text命名要呼叫value裡面的資源檔,而不是直接設值
,google應該可以找到不少資源。
Layout要可符合各種Size的手機,[Android] 利用XML來呈現Android的畫面後半有大概提到一點。

範例:回到首頁按鈕
<ImageButton
android:id="@+id/ButtonBacktoHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Back"
android:layout_x="120px"
android:layout_y="90px"
android:src="@drawable/memo"
/>

[Android]利用Java Class繼承View來呈現Android畫面

要設計Android的畫面有兩種方式:
一種是仿間書本都會教的第一招,利用xml來寫畫面。
二種則是用java來寫,透過class繼承view這個類別來達成。

目標:
1.利用java來呈現android手機畫面、
2.滑鼠點擊螢幕拖動圖形。

先開一個新專案,Application name是會顯示在手機軟體列上的名稱,對一個軟體的辨識度有很大的影響,Package name是這個Project的資料夾結構,最內部就是放著.java檔,通常都習慣把網址倒過來寫,Create Activity是替你先創造一個Activity,一個Android軟體一定要有一個Activity(活動), 手機才能執行,這裡就先幫他取名,Mini SDK Version就看你上面勾選哪個版本就照用吧。


除了我自己上的註解外,這是剛開始最乾淨的Activity。我們就是要把  setContentView(R.layout.main);原本是抓取資源檔 layout內的main.xml改成我們自己寫的java class。


在專案上點右鍵,新增一個Class。


剛開始最乾淨的class


先讓他extends View,會有錯誤。


再利用ctrl+shift+O,讓系統自動幫你import。import之後還是會有錯誤,是因為View有規定你必須要擁有建構函式。


 在錯誤紅線上停留,他就會提示你該要怎麼做。建構函式有了,錯誤就解決了。

  繼承View的class架構好了,Activity就拿來用吧,利用setContentView(m_MyView_01)。

複寫onDraw,Canvas就如同畫布一般。


canvas.drawColor(顏色),顏色可以是色碼,或是android API設的常態變數。


Color.呼叫常態變數



以40為間隔劃出水平線。

呈現結果。

再畫垂直線。

畫圓。

將圓的座標直徑設為全域變數。

判斷手指是否有點到圓。

 移動圓以及離開圓的動作function

Thread設置,這樣才可以一直刷新圓的位置。

設定優先權。



在Activity中複寫onTouchEvent,偵測MotionEvent。

android api的常態變數。

手指按下、移動、拿起的位置偵測,再丟給View的function處理。

之前發現圓不會動!!!原來是忘了設true!!!

結果測試的結果,不在圓上也可以移動圓!!!怪了!!!

原來是我在移動圓的判斷是這邊寫錯啦...找好久。m_bIsTouchDownCircle是boolean變數啦!

直接放if內就好了。
                  
最後結果。



[Android] 模擬器太大如何調整Size

        你要改變模擬器的比例,例如320x480轉成480x800(HTC Desire的size),卻因為筆電螢幕太小,模擬器超出螢幕過多時,就可以選擇Scale等比例縮小。

先開啟Android SDK and AVD Manager,選擇模擬氣候按Start...

  勾選  Scale display to real size,調整參數就可以放大縮小了。

呈現出480x800的縮小版介面

比較麻煩的是每次都要透過Android SDK and AVD Manager開起來選擇,不能在debug 、run as的時候選擇。

[Android]將自行開發的Android程式安裝進Device內

編寫玩自己的Android程式要放進手機裡有兩種方法:
一種是把.apk檔放入SD卡內安裝。(還有問題)
二種是把Android手機接上USB直接編譯上去。


先來介紹第一種:
你要將 軟體名稱.apk檔,從workspace\專案名稱\bin 內抓出來直接放到SD卡內,再透過類似檔案總管的手機軟體將她打開,選擇安裝就可以了。但是如果你有使用googlemap api,這樣直接到手機裡面會有指紋簽署(fingerprint)的問題,在使用google map api的畫面上,會無法開啟地圖,目前我還不知道如何解決。

每個專案的.apk,都會在相似的位置。



第二種方法,也是比較方便的方法,就是透過eclipse Run as 或是 Debug as 的狀態下選擇你要執行的Device,一般沒有手機就是直接用虛擬機器執行。這方法不會有google map api認證上的問題。

    別忘了先更改Run Configurations。

在Run Configurations更改Deployment Target為Manual,才可以手動選擇要開啟的device。


看到手機裝置,點下去就對了。同時也可以利用實體手機同時偵錯。
              
例外狀況:你可能接上手機後還是沒有看到Device在上面,那很有可能是沒有裝手機的driver,像我是HTC desire的手機,剛開始也沒抓到,只要安裝HTC sync,裡面包含驅動程式,就可以抓的到了!各家驅動程式在官網上應該就都有了。

[Android] 利用XML來呈現Android的畫面

要設計Android的畫面有兩種方式:
一種是仿間書本都會教的第一招,利用xml來寫畫面。
二種則是用java來寫,透過class繼承view這個類別來達成。

目標:
1.介紹利用xml來呈現Android手機的畫面的編輯平台、
2.ADT for Eclipse的方便性、
3.以及如何讓軟體能夠符合多種size的螢幕。

Project->res資料夾->layout資料夾,就是我們放xml檔的地方。
中下處選擇Graphical Layout,就會以圖形的方式呈現畫面,元件的使用在ADT for Eclipse也做的非常方便,palette內就可以選擇你想要的元件。例如layouts是包含各種的排版方式,拖曳到畫面上就可以使用了。

上方的下拉選單,可以呈現出你現在layout在不同size的螢幕下會是怎樣的情況,當然要做到一次符合每個size的layout是有點困難(當然還是有辦法,後半會說到),Portrait是表示為直的顯示方式,Theme我還不是很清楚,但似乎可以選擇畫面是沒有大部分手機上常出現的狀態列,再來是選擇你layout的版本,目前是Android2.1-update1。

ADT強大的地方就在你不用一直透過程式碼來改變元件位置,例如此圖就是在RelativeLayout的layout下還是可以透過滑鼠來排版。

元件layout的高度、寬度,也可以透過右鍵選項中方便的勾選,或是點擊other來輸入數值。

元件的Properties也可以透過直接勾選的方式設置,跟之前的ADT比較起來,你可以更快速簡單的選擇你要更改的參數。

若不想透過視覺化的環境來調整介面,只要下方選擇main.xml就可以看到程式碼的部分,雖然ADT提供的環境很方便,但是更改xml code才應該是程式人員的基本功。



如何讓軟體符合多種的螢幕大小?
若是你今天要做符合多種螢幕size的軟體,可以在res資料夾下新增一個"layout-數字x數字"的資料夾,當程式在手機上運行時,會自動選擇符合他size的layout。


例如現在新增一個跟我desire一樣size的"layout-480x800"。當然你其他layout有的檔案這裡也要