可以參考以下文章
1. http://android-er.blogspot.tw/2014/04/example-of-programming-android-nfc.html
2. http://developer.android.com/guide/topics/connectivity/nfc/nfc.html
下載 android studio example 檔案: (使用 Android Studio 1.4 開發)
https://drive.google.com/file/d/0B1BLJ4r7axiQcFZNTGlDdXFDLTg/view?usp=sharing
2015年11月12日 星期四
使用 ZXING 進行條碼(1~2維) 掃描
這個議題在網路上的範例相當多,但是我也花了許多功夫,才找到可執行的範例,特紀錄如下。
1. 使用 Android Studio 1.4
2. New 一個 Empty Activity的 project
3. 參考 http://lazycatnote.blogspot.tw/2015/03/androidqr-code.html 的說明,但是加的位置及內容略為調整。
(a) 在 Gradle Scripts / build gradle (Module: app) 加入程式碼:
當出現需要 Sync的訊息時,按下 Sync now (此時會自動下載相關檔案,無需自行下載 ZXING 套件)
(b) MainActivity 內容
4. 完工
5. 範例下載: https://drive.google.com/file/d/0B1BLJ4r7axiQczVIVGhySy1uRGs/view?usp=sharing
1. 使用 Android Studio 1.4
2. New 一個 Empty Activity的 project
3. 參考 http://lazycatnote.blogspot.tw/2015/03/androidqr-code.html 的說明,但是加的位置及內容略為調整。
(a) 在 Gradle Scripts / build gradle (Module: app) 加入程式碼:
repositories { mavenCentral() maven { url "http://dl.bintray.com/journeyapps/maven" } } dependencies { // Supports Android 4.0.3 and later (API level 15) compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions. // If you only plan on supporting Android 4.0.3 and up, you don't need to include this. compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar' // Convenience library to launch the scanning and encoding Activities. // It automatically picks the best scanning library from the above two, depending on the // Android version and what is available. compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier. // This mostly affects encoding, but you should test if you plan to support these versions. // Older versions e.g. 2.2 may also work if you need support for older Android versions. compile 'com.google.zxing:core:3.0.1'}
當出現需要 Sync的訊息時,按下 Sync now (此時會自動下載相關檔案,無需自行下載 ZXING 套件)
(b) MainActivity 內容
package com.example.ray.myapplication2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.app.Activity; import com.google.zxing.integration.android.*; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Activity mainactivity; private TextView scan_content; private TextView scan_format; private Button scan_btn; @Override protected void onCreate(Bundle saveInstanceStat){ super.onCreate(saveInstanceStat); setContentView(R.layout.activity_main); init_view(); scan_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { IntentIntegrator scanIntegrator = new IntentIntegrator(mainactivity); scanIntegrator.initiateScan(); } }); } public void onActivityResult(int requestCode, int resultCode, Intent intent){ IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); if(scanningResult!=null){ String scanContent=scanningResult.getContents(); String scanFormat=scanningResult.getFormatName(); scan_content.setText(scanContent); scan_format.setText(scanFormat); }else{ Toast.makeText(getApplicationContext(),"nothing",Toast.LENGTH_SHORT).show(); } } private void init_view(){ this.scan_content=(TextView)findViewById(R.id.scan_content); this.scan_format=(TextView)findViewById(R.id.scan_format); this.mainactivity=this; this.scan_btn = (Button)findViewById(R.id.scan_btn); } }(c) active_main.xml 加入相對的Button及Textview
4. 完工
5. 範例下載: https://drive.google.com/file/d/0B1BLJ4r7axiQczVIVGhySy1uRGs/view?usp=sharing
2015年11月11日 星期三
Mac 安裝 Windows 8.1
近來要將一台mac air 與 一台 macbook pro 裝上windows, 結果折騰了好久,就是忘了一些步驟,將其主要步驟紀錄如下,各步驟詳細內容網路上都可找到,就不贅述了。
1. 準備windows的iso檔與一個隨身碟,應該8G的就夠了。
2. 在 osx下利用finder 執行應用程式/工具程式下的 bootcamp。
3. bootcamp會指示安裝windows的步驟,其中下載windows的支援程式部分要花蠻多時間的。
4. 裝好windows後,進入windows後會發現有些driver還沒裝(如 無線網卡),不要緊張,到控制台下找到bootcamp執行,即可裝好。如果要對觸控板做一些設定,也是在bootcamp裡面。
裝機結果發現 macbook 與 mac air都可用同一支bootcamp做出來的隨身碟內容,不必重做。當一台做好後,另一台在 osx下執行bootcamp時,前兩項(製作usb與下載windows支援程式)都可不必勾選了。
1. 準備windows的iso檔與一個隨身碟,應該8G的就夠了。
2. 在 osx下利用finder 執行應用程式/工具程式下的 bootcamp。
3. bootcamp會指示安裝windows的步驟,其中下載windows的支援程式部分要花蠻多時間的。
4. 裝好windows後,進入windows後會發現有些driver還沒裝(如 無線網卡),不要緊張,到控制台下找到bootcamp執行,即可裝好。如果要對觸控板做一些設定,也是在bootcamp裡面。
裝機結果發現 macbook 與 mac air都可用同一支bootcamp做出來的隨身碟內容,不必重做。當一台做好後,另一台在 osx下執行bootcamp時,前兩項(製作usb與下載windows支援程式)都可不必勾選了。
2015年10月29日 星期四
Mac 下使用 android studio 的 adb 指令
近來發現手上有不少Mac機器,想乾脆在Mac下裝Android studio。結果第一步就發現找不到adb。尋訪google大神後,發現以下方法:
1. 先將mac開機(按著 cmd+r) 進入recovery mode.
2. 選擇選單上的工具程式 / 終端機
3. 輸入 csrutil disable
4. 輸入 reboot 重開機
5. 正常進入系統後,進入終端機輸入:
sudo cp ~/Library/Android/sdk/platform-tools/adb /usr/bin/adb
6. 完工。
參考網址:
1. kiraku.tw/2014/12/3714/
2. http://stackoverflow.com/questions/32659348/operation-not-permitted-when-on-root-el-capitan-rootless-disabled 的回答。
1. 先將mac開機(按著 cmd+r) 進入recovery mode.
2. 選擇選單上的工具程式 / 終端機
3. 輸入 csrutil disable
4. 輸入 reboot 重開機
5. 正常進入系統後,進入終端機輸入:
sudo cp ~/Library/Android/sdk/platform-tools/adb /usr/bin/adb
6. 完工。
參考網址:
1. kiraku.tw/2014/12/3714/
2. http://stackoverflow.com/questions/32659348/operation-not-permitted-when-on-root-el-capitan-rootless-disabled 的回答。
2015年6月6日 星期六
L5: 元件的Onclick 處理事件
在 android的程式設計中,要處理 UI 元件的相關事件通常需要撰寫相關的listener,程式有一些嚇人。如果畫面中有一個button,其id是button,而我們希望使用者按下button時可以在畫面上顯示Hello,那我們需要寫出OnClickListener,步驟如下:
1. 加入button元件,確定其id為button
2. 到MainActivity.java的OnCreate裏以findViewById找到畫面中的button元件 (如何利用Android Studio幫你快速建立此行程式可以參見 L3: 使用 textView 當輸出)
1. 加入button元件,確定其id為button
2. 到MainActivity.java的OnCreate裏以findViewById找到畫面中的button元件 (如何利用Android Studio幫你快速建立此行程式可以參見 L3: 使用 textView 當輸出)
3. 鍵入 bt.,畫面及如下所示,列出了可選項目,點選setOnClickListener
4. 在 bt.setOnClickListener()的一對小括號中間鍵入 new O (注意,要大寫O),就會出現OnClickListener的選項,如下圖。
點選OnClickListener的選項,神奇的事情發生了,Android Studio幫你完成了框架。
5. 剩下的事情就是在Onclick(View v) 內寫下你要做的事: 顯示 Hello。可以利用
Toast.makeText來完成。因此在OnCreate外,先建立一個顯示訊息的副程式:
public void showmsg(String msg){ Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); }
然後在剛才的OnClick中呼叫 showmsg來顯示Hello即可。
showmsg("Hello");
6. 完工。
其實以上步驟不難,只要善用Android Studio的 intellisense功能,就可少記憶很多東西。
Android Studio還有另外一個快速辦法,對於一些UI物件都可試試。步驟如下:
1. 建立Button元件,參考前述步驟 1。
2. 寫出onclick要呼叫的副程式,記得要傳入View v。
public void xxx(View v) {
Toast.makeText(this,"Hello",Toast.LENGTH_SHORT).show();
}
3. 點選 button 元件,在其 Properties視窗中找尋 onClick,按下右邊的下拉選單,就可看到所建立的副程式 xxx,選擇此副程式。
4. 完工。
對於OnClick事件處理,這真是一個方便的做法,可惜Android Studio還沒有對其他事件提供相同的優待,期待後面的版本可以加入這樣的功能。目前對於其他事件(例如 OnCheckedChanged) 就只有繼續採取第一種作法了。
2015年6月5日 星期五
Short Note:快速產生 Override 方法
善用Android Studio 的協助,可以減少記憶一些固定的方法名稱及參數等。以覆寫固有的方法來說,可以用下述方法,快速建出基本的方法框架。
1. 以滑鼠點選要插入方法的位置。
2. 選擇功能表的 Code / Override Methods (如下圖)
1. 以滑鼠點選要插入方法的位置。
2. 選擇功能表的 Code / Override Methods (如下圖)
3. 選擇所要的方法 (可複選)
4. 按下OK就完工了。
2015年5月20日 星期三
L4: 畫圖
想要在手機上畫個圖,說起來容易,可是似乎又有些摸不著頭緒。在這節中,將要達到一個簡單的目的: 在螢幕上顯示一個圓。單純的目的,讓我們可以一步步了解Android 畫圖的基礎。
1. 要自製一個View的類別(Class),首先在 app / java 下與 MainActivity 同一套件下產生一個新類別 PaintView (自訂名稱)。
1. 要自製一個View的類別(Class),首先在 app / java 下與 MainActivity 同一套件下產生一個新類別 PaintView (自訂名稱)。
按下OK後,會出現 public PaintView 的程式,將其改寫為 public PaintView extends View,然後如前面L3所說,當出現紅色底線毛毛蟲時,按下alt-Enter,讓Android Studio幫忙,選擇建立Constructor,就可得到下列程式。
public class PaintView extends View { public PaintView(Context context) { super(context); } }
2. 為 PaintView 加上 onDraw方法的改寫,讓App在重繪 PaintView時,能畫出一個圓形。
public class PaintView extends View { public PaintView(Context context) { super(context); } protected void onDraw(Canvas canvas){ Paint paint = new Paint(); canvas.drawColor(Color.WHITE); //設定畫布顏色 paint.setColor(Color.BLACK); //設定畫筆顏色 canvas.drawCircle(100,100,50,paint); //在座標100,100處,以paint屬性畫出一個半徑50的圓 } }
PaintView 在這個例子中這樣就夠了,但是以後要再加功能,就要到這裡修改。
3. 為 App 畫面加上 PaintView這個CustomView。
如上圖選擇後,將它擺到畫面中即可。
4. 最後將 MainActivity.java中的onCreate 改寫如下即可。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); PaintView pp = new PaintView(this); setContentView(pp); }
5. 完工。
2015年5月19日 星期二
L3: 使用 textView 當輸出
在C程式語言的學習過程中,常會用到 printf 來輸出結果,到了Android app的設計,要怎樣輸出結果到畫面上? 其實也有很多方法,利用元件當輸出也是一種方式。
本例使用 textView作為輸出元件,將 1 ~ 50 的整數顯示出來。
1. 利用前面所學,將 textView 擺到畫面中,為了讓 textView在超過螢幕範圍時,可以上下捲動,再加上一個 scrollView 做垂直方向的捲動,而textView應該放在 scrollView裡面,完成後架構如下:
2. 到 app / java 下找出 MainActivity.java 裡的 OnCreate 中加入程式就ok了 ,如下圖所示。
3. 解釋一下程式內容:
本例使用 textView作為輸出元件,將 1 ~ 50 的整數顯示出來。
1. 利用前面所學,將 textView 擺到畫面中,為了讓 textView在超過螢幕範圍時,可以上下捲動,再加上一個 scrollView 做垂直方向的捲動,而textView應該放在 scrollView裡面,完成後架構如下:
2. 到 app / java 下找出 MainActivity.java 裡的 OnCreate 中加入程式就ok了 ,如下圖所示。
3. 解釋一下程式內容:
TextView tt = (TextView) findViewById(R.id.textView);
這行可以找到畫面中放入的 textView 元件,程式撰寫時可以善用intellisense與alt-Enter的功能,減少記憶的負擔。以此行為例,先鍵入大寫 T,intellisense就會找到 TextView,選取按Enter就打好了,再輸入自訂變數名稱 (此例為tt),加上 = f,findViewById 又出現了,在()裏輸入 id.t,R.id.textView又出現了,最後在 )後補上一個分號 ;,此時整段下方出現紅色毛毛蟲底線,按下alt+Enter,選取第一項 cast to ...後按下Enter,本行就打好了。
for (int i=0; i<50; i++) tt.setText(tt.getText()+"\n"+Integer.toString(i));
這段則是 for 迴圈的基本使用,不再贅述。而控制重複的指令中使用的方法如下:
tt.setText(string) : 設定 tt 元件的顯示字串為 string
tt.getText() : 取得 tt 元件的顯示字串
"\n" : 換行字符
Integer.toString(i) : 將變數 i 的內容轉換成字串。此例也可不需要使用此方法,直接寫 + i就好了,java可以自動轉換型態。
4. 要讓 scrollView寬度與畫面相同,就要設定其 layout:width 為 fill_parent。
5. 完工。
6. 試試下面的程式,也是程式設計課程中巢狀迴圈的常見範例。
tt.setText(""); for (int i=0; i<=5; i++) { for (int j=0; j<i; j++) tt.setText(tt.getText() + "*"); tt.setText((tt.getText()+"\n")); }
2015年5月18日 星期一
Fissler 26cm, 8l 壓力鍋
近來接獲高層指示,要添購一組德國Fissler的壓力鍋 !
經過百貨公司的初步調查後,6升的壓力鍋在母親節檔期,配合各項活動後,大約實際要NT$ 16000. 而網路大多建議可以經過德國代購來購買,也有建議可以找 Amazon。藉由Google大神的翻譯幫助,檢視了 amazon.it, amazon.de, amazon.fr 等歐洲 Amazon, 最後決定在 amazon.it下單,Fissler 8升的壓力鍋標價 149.xx 歐元,算起來很便宜,就給他下單了。
結帳時因為退稅,所以壓力鍋約為 122.xx 歐元,但是加上運費 54歐,台灣關稅 18.xx歐,一共要 194.xx歐,如果用信用卡付台幣,大約要 NT$ 7200,記得有網友提醒要指定付歐元較划算,所以指定付 194.xx歐元,後來信用卡傳來消費訊息,說我消費約 NT$ 6800,嗯,不可不慎 !
結帳時要輸入信用卡資料,到最後畫面才會出現總價,並且讓你選擇支付新台幣或歐元,運輸有兩個選項,一個是7-14天,一個是2-4天,但是運費一個是54.xx歐,一個則要8x.xx歐,還是選便宜的為上策。
下單時原先是選 7-14天到達,而訂單確認信上卻是估計12 ~ 24天,讓人有點擔心。隨後出貨通知信件中則改為 6天後到達。令人驚訝的是3天後就到了,這真是太神奇了。還好沒選2-4天的。
連外包裝有6.2kg,可是去掉外包裝,就只有5.5kg,這國際運費又多付了些...
拆箱後只有兩個物件:
沒有附贈腳架及蒸盤,看來下一次應該找網路代購業者,或許會有更低的價格,不過還是比百貨公司便宜的多,速度也真得很快,讓人不得不驚嘆這真是一個地球村的時代。
經過百貨公司的初步調查後,6升的壓力鍋在母親節檔期,配合各項活動後,大約實際要NT$ 16000. 而網路大多建議可以經過德國代購來購買,也有建議可以找 Amazon。藉由Google大神的翻譯幫助,檢視了 amazon.it, amazon.de, amazon.fr 等歐洲 Amazon, 最後決定在 amazon.it下單,Fissler 8升的壓力鍋標價 149.xx 歐元,算起來很便宜,就給他下單了。
結帳時因為退稅,所以壓力鍋約為 122.xx 歐元,但是加上運費 54歐,台灣關稅 18.xx歐,一共要 194.xx歐,如果用信用卡付台幣,大約要 NT$ 7200,記得有網友提醒要指定付歐元較划算,所以指定付 194.xx歐元,後來信用卡傳來消費訊息,說我消費約 NT$ 6800,嗯,不可不慎 !
結帳時要輸入信用卡資料,到最後畫面才會出現總價,並且讓你選擇支付新台幣或歐元,運輸有兩個選項,一個是7-14天,一個是2-4天,但是運費一個是54.xx歐,一個則要8x.xx歐,還是選便宜的為上策。
下單時原先是選 7-14天到達,而訂單確認信上卻是估計12 ~ 24天,讓人有點擔心。隨後出貨通知信件中則改為 6天後到達。令人驚訝的是3天後就到了,這真是太神奇了。還好沒選2-4天的。
連外包裝有6.2kg,可是去掉外包裝,就只有5.5kg,這國際運費又多付了些...
拆箱後只有兩個物件:
沒有附贈腳架及蒸盤,看來下一次應該找網路代購業者,或許會有更低的價格,不過還是比百貨公司便宜的多,速度也真得很快,讓人不得不驚嘆這真是一個地球村的時代。
Strontium 64GB ON-THE-GO (OTG) USB 3.0 FLASH DRIVE
買了一個 64g 隨身碟,主要是看上它網頁上的廣告: R120 / W90 MB/s 的數據,又想買一個可以在手機與電腦間雙向使用的小玩具,所以...
現在網路購物都很快,一天就可以收到了。
看來在傳輸大小為 8192 KB時,測試結果雙雙超過了網頁宣稱的速度,雖然以後也不會注意到底速度多快,不過感覺倒是還不錯 :)
現在網路購物都很快,一天就可以收到了。
包裝還不錯,東西小小的,有金屬質感。打開後才發現沒有吊飾孔,以後要小心別掉了!
插入Zenfone 6 馬上被認出一個USB儲存裝置,可是放到較早期的手機: sony LT29i 就會出現檔案系統不相容或格式錯誤的問題,反正是暫時沒在用的手機,就不予理會吧。
接下來就是最關心的存取速度,是否真的能達到它所宣稱的速度? 將它插入電腦 usb 3.0的插孔,以下就是用 ATTO v2.47 Bench32 測試所得結果:
2015年5月17日 星期日
Asus Chi T300 5Y10 基本款
這裡使用的是這一系列中等級最低的一款,解析度 1920 x 1080。Intel® Core™ M 5Y10 處理器,記得此款CPU效能與 i3 差不多同級,詳細效能比較可以在網路上找到。HD 規格上是 128G SSD,在系統中看到的是 117.25GB。另外系統中顯示作業系統版本為Windows 8.1, 沒有"專業版" 3 個字,所以應該是家用版囉。
其實這款平板筆電詳細規格網路上都查的到,重要的是使用心得。當初購買前曾就此款與Microsoft Surface pro 3比較,價格上差不多是 23000與25000的差別,但是此款有鍵盤與128G SSD,Surface pro 3則有觸控筆與更高解析度的螢幕。最後因為認為此款有較大一點的螢幕與較輕薄的體型,所以選了它。不過看到實機後,覺得我叫喜歡Surface pro的螢幕比例,Surface pro 是較方正的,而T300則是寬螢幕型的,就跟4:3的螢幕與16:9螢幕的差別,但是來不及了...
以我這木頭眼睛來看,1920 x 1080 的解析度已經OK (不過沒長時間用過Surface pro 3,不能說更高解析的螢幕會沒有感覺),觸控也還好,不過在看照片時,觸控的放大縮小似乎有些鈍鈍的,這點讓我比較不滿意。另外耗電量部分,平板感覺還蠻耗電的,改天再來實測,但是它充電也蠻快的。
而藍芽鍵盤的確蠻省電的,買來到現在只充了幾次電。感覺是它的重量是否有可能改善? 以目前情況,實在不想帶它出門。雖然打字感覺都還不錯,鍵距不錯,但是重量真的是...
至於鍵盤充電時不是獨立充電,而是由micro usb 接頭連接平板與鍵盤,感覺比較誇張的是平板的micro usb 在右方,而鍵盤的則在左方,設計時沒考慮到嗎?
此款平板獨立使用時,右下角(ASUS logo的對角)會發熱,夏天拿在手上不是那麼的舒服,可能較適合冬天吧 :)
開機是蠻快的,使用SSD的正常結果。可能有人會怕CPU夠不夠力,我覺得只考慮上上網,用用Office,打打網誌的話,感覺是沒甚麼問題的,其他軟體則因為還沒用到,所以留待以後再說。
其實這款平板筆電詳細規格網路上都查的到,重要的是使用心得。當初購買前曾就此款與Microsoft Surface pro 3比較,價格上差不多是 23000與25000的差別,但是此款有鍵盤與128G SSD,Surface pro 3則有觸控筆與更高解析度的螢幕。最後因為認為此款有較大一點的螢幕與較輕薄的體型,所以選了它。不過看到實機後,覺得我叫喜歡Surface pro的螢幕比例,Surface pro 是較方正的,而T300則是寬螢幕型的,就跟4:3的螢幕與16:9螢幕的差別,但是來不及了...
以我這木頭眼睛來看,1920 x 1080 的解析度已經OK (不過沒長時間用過Surface pro 3,不能說更高解析的螢幕會沒有感覺),觸控也還好,不過在看照片時,觸控的放大縮小似乎有些鈍鈍的,這點讓我比較不滿意。另外耗電量部分,平板感覺還蠻耗電的,改天再來實測,但是它充電也蠻快的。
而藍芽鍵盤的確蠻省電的,買來到現在只充了幾次電。感覺是它的重量是否有可能改善? 以目前情況,實在不想帶它出門。雖然打字感覺都還不錯,鍵距不錯,但是重量真的是...
至於鍵盤充電時不是獨立充電,而是由micro usb 接頭連接平板與鍵盤,感覺比較誇張的是平板的micro usb 在右方,而鍵盤的則在左方,設計時沒考慮到嗎?
此款平板獨立使用時,右下角(ASUS logo的對角)會發熱,夏天拿在手上不是那麼的舒服,可能較適合冬天吧 :)
開機是蠻快的,使用SSD的正常結果。可能有人會怕CPU夠不夠力,我覺得只考慮上上網,用用Office,打打網誌的話,感覺是沒甚麼問題的,其他軟體則因為還沒用到,所以留待以後再說。
2015年5月16日 星期六
L2: UI 設計
Android Studio 中UI的設計與Visual Studio系列的用法不同,如果直接像在Visual Studio中一樣拖拉,光對齊就會讓人火冒三丈,因此下方用一個簡單的範例來介紹,這個範例也可以用來做下一課的界面。假設要設計下面的界面,應該如何進行?
1. Android Studio 提供不同界面排版的方式,在此例中將以 LinearLayout來製作。在產生新專案時,內定為RelativeLayout,因此先點開 app / res / layout / activity_main.xml,找到第一行:
1. Android Studio 提供不同界面排版的方式,在此例中將以 LinearLayout來製作。在產生新專案時,內定為RelativeLayout,因此先點開 app / res / layout / activity_main.xml,找到第一行:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
將 RelativeLayout 改成 LinearLayout。
2. LinearLayout 將畫面視為縱向(Vertical)與橫向(Horizontal)兩種,在此我們將畫面視為4個橫列(Horizontal)由上而下排列(Vertical),如下圖:
所以在component Tree中點選LinearLayout,然後在Properties中將其 orientation選為Vertical.
3. 原專案中就有的 TextView可以先將其刪除。接下來在Palette中拉出4個LinearLayout(Horizontal),然後在Component Tree中選取這四個LinearLayout,在Properties中將Layout:height 輸入要的高度,例如 100dp
4. 從 Pallete中Widgets拉出一個Plain TextView及Text Fields裡的Number到第一橫列,同樣也拉一個Plain TextView及Number到第二橫列,一個Widgets中的Button到第三橫列,最後兩個Plain TextView到第四橫列。
5. 設定字串常數,詳細操作請看前一課介紹。
<string name="height">身高</string> <string name="weight">體重</string> <string name="bmi">BMI</string> <string name="calculate">計算</string>
6. 點選第一個textView,並更改其text屬性為@string/height (按旁邊的 ... 按鈕,就可列出所有可用資源,string中定義的大概都在最下面,點選就ok,不用自己輸入),textSize 為 24dp,再將第一個editText的textSize屬性也設定為24dp,textColor 設定為喜歡的顏色。最後點選第一橫列 LinearLayout(horizontal),設定 gravity為center_vertical。依此動作設定各元件屬性,就可完工囉。
XT910 刷 slimkat 4.4
這是很久前使用的Moto XT910刷機步驟,當時真是感覺910是不會變磚! 真是太強了。
只是強者也強不過時間,910落伍很久了,雖然手機依然能正常運作,還是放入了倉庫,此處只是聊做紀錄,以備不時之需。
1. 安裝 BMM (Boot Menu Manager)
2. 下載 ROM, 並存放置手機 SD
Slim Unofficial ROM
GApp
3. 開機進入BMM
4. 選擇RESCOVERY
5. 選SYSTEM1
只是強者也強不過時間,910落伍很久了,雖然手機依然能正常運作,還是放入了倉庫,此處只是聊做紀錄,以備不時之需。
1. 安裝 BMM (Boot Menu Manager)
2. 下載 ROM, 並存放置手機 SD
Slim Unofficial ROM
GApp
3. 開機進入BMM
4. 選擇RESCOVERY
5. 選SYSTEM1
6. WIPE&Clean -> Wipe data&cache(Factory Reset)
7. 刷SlimKat ROM
8. 刷GApp
8. 刷GApp
9. WIPE&Clean -> Wipe data&cache(Factory Reset)
10.Reboot option ->Reboot
10.Reboot option ->Reboot
11.開機
三義綠野方舟桐花、美食、賞螢三合一之旅
受到上周日到客家大院想賞桐花卻碰到人潮敗興而回的影響,今日老婆大人想要找個叫清靜的所在走走,恰好她的同事建議三義的綠野方舟不錯,所以就在傍晚時分出發。
到了目的地,發現就在勝興車站附近,也有不少車輛往勝興車站駛去,倒是這個景點只有我們一台車轉了進來。
付了入場費(詳細資訊可查其官方網站: http://greenark.com.tw/home.asp),停了車,徒步走向入口 (如下圖)
入了拱門就是一片草地,感覺還不錯。
遇到的第一棟建築,裡面販賣一些紀念品,不大,一下子就晃玩了。
沿著小屋旁的斜坡往上走,一顆盛開的桐花樹就在路邊,不知是否園方刻意移植,這麼容易親近的桐花樹在印象中並不多見。
往上還可再走,是一座小山,路邊不少桐花,路上也有不少落花,加上所見人數不多,的確享受了賞花樂趣。由於不知往上還有多少可走,因此先回頭循紀念品小屋前的路往前行去。
到達餐廳前,由於噴著小水氣,感覺除了涼快外,還有了一些仙氣 :)
落英繽紛的五月雪! 這是此行的主要目的...
走過了,有點累了,這時來點美食也就不會感覺太罪惡 :)
價格不是很便宜,不過入場券可以抵消費,付出還好。等待的時間可以到餐廳四處逛逛,景色還不錯。
美食上場...
味道還不錯,接下來就要耗一些時間等待晚上賞螢活動的開始。
今天看到的螢火蟲不少,可惜賞螢不方便使用照相機,用了大概也沒甚麼效果,就等待自己來此處體會囉。
2015年5月15日 星期五
L1: Android 程式的字串常數庫
開發程式時,應該需要顯示一些字串,這些字串可以直接打入程式中,方便但是未來的維護可能較費力,也不利於發展多語言介面。因此可以將字串常數存於特定的xml檔案中,以方便未來維護。
以第一個Hello World程式而言,如果想要將它改成中文版,要如何做呢?
1. 點開 app / res / values,可以看到strings.xml,找出下面一行,這一行就是定義一個字串常數叫 hello_world,內容是 Hello world!。
再執行程式,就可在手機上看到中文的歡迎了。
2. 點開 app / res / layout / activity_main.xml,注意下圖的各個紅框,你就可以大概了解其中奧妙了。
以第一個Hello World程式而言,如果想要將它改成中文版,要如何做呢?
1. 點開 app / res / values,可以看到strings.xml,找出下面一行,這一行就是定義一個字串常數叫 hello_world,內容是 Hello world!。
<string name="hello_world">Hello world!</string>
將它改成
<string name="hello_world">歡迎!</string>
再執行程式,就可在手機上看到中文的歡迎了。
2. 點開 app / res / layout / activity_main.xml,注意下圖的各個紅框,你就可以大概了解其中奧妙了。
L1: 手機的第一個程式: Hello World
1. 開啟Android Studtio.
2. 選擇新專案
2. 選擇新專案
3. 按下一步 (Next)
4. 選擇需要的SDK,第一個專案勾選第一項就好,下拉選單中支援的Android 系統版本如果沒有所需要的,就要到SDK Manager中去下載及安裝。
5. 後面步驟都案下一步即可,直到按下Finish後,看到下面畫面就可開始動工了。
6. 將手機以 USB線與電腦連結(注意手機要已經打開開發者模式,在與電腦連結後,手機畫面會出現確認允許USB偵錯,確定後即與電腦相連),再按下上圖紅色箭頭所指的 Android Device Monitor,應該就可看到手機了,如果沒看到,重複插拔手機應該就可以了。
7. 按下執行按鈕(或 Shift-F10),可能要等一下子,然後會出現選擇設備對話框,選擇手機,按下OK,你就可以在手機上看到Hello World 的訊息了。
8. 此時在手機中已經安裝了這個app, (都沒改的話,應該叫 My Application),第一個手機程式完工。
訂閱:
文章 (Atom)