可以參考以下文章
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. 完工。
訂閱:
文章 (Atom)










