尤娜的奇幻世界
2013年10月28日 星期一
專案潛在殺手
專案潛在殺手
小型
特徵:.Button up規格設計
較為保守,安全
完全利用已能掌握之技術
通常時程內能完成
有充裕時間做測試及局部最佳化
2.風險:人員易閒置,規格規模較同類產品低
中型
特徵:以Top-down設計為多
包含已知與未知技術項目
通常邊做邊學其中部分技術
2.風險:容易執著於技術的深入,忘記整體專案的各功能完整呈現
大型
特徵:以Top-down/Button up設計兼具
求好心切,以致規格無法定義,或是定了之後又再新增
缺點:程式人員人心惶惶不敢動手,深怕又要改規格
2013年10月20日 星期日
已知轉接器(adapter)可應用的GUI元件
ListView
Gallery
AutoCompleteTextView
MultiAutoCompleteTextView
Spinner
GridView
當用到BaseAdapter時,在getView複寫時要注意:
此 getView為動態式呼叫,即畫面用到時才會呼叫
換言之可能造成重複new的情況:
解法一:利用if (convertView == null) 做判斷
解法二:利用ArrayList<所要NEW的View>事先做好
利用第三方Parse.com之推播軟體移植要點
(一)最基礎:僅能收到PUSH訊息
註冊帳號,並login到Parse.com,在下載SDK
依照QuickStart標籤之指示,實作相關程式於.java.xml
切換到Dashboard-->Push--->Send a push去新增Message
少於180character
可利用JSON格式
可侷限群組收訊(利用Subscribe、subscription
(二)進階一:讓APP攔截到所Push的訊息(JSON格式)
1.要新增receiver於xml(PS.name要改成你的package name,action則可不改)
2.可考慮【訂閱頻道】 (Subscribe channel)練習:將SMS叫醒unlock改成push叫醒
(三)進階二: 讓APP能發出訊息給其他APP
2013年10月19日 星期六
Service+Receiver練習
四組程式互相對照:
V1:Activity自行發出Notification //此為對照用,因為Notification一般用在背景程式
V2: Activity+Receiver:由 Activity廣播給【自家】的Receiver,然後由Receiver發出Notification
//美中不足之處,此Activity並非結束(finish)
//而是移到後面(move To Back(true))
V2-1: Activity無Receiver:由另一個 Activity發出廣播給【別家】的Receiver的示範方法
V3:Activity+Service+Receiver:解決V2的缺點,讓Activity交出主控權給Service之後就finish();
2013年10月18日 星期五
Adapter(轉接器)相關重點
意義:可供3C產品的Adapte做比喻
-->電的形式"轉變" -->"資料形式"轉變
Adapter常見的有:
ArrayAdapter:專精於字串資料
BaseAdapter:所有Adapter的基礎,專精於"複合式"資料(EX:圖文並茂)
Simple Adapter:專精於"靜態式(static)"表單
ArrayAdapter的建構方式
資料形式的決定
String[ ] -->利用new ArrayAdapter()建構子傳遞參數
list -->利用new ArrayAdapter()建構子傳遞參數
resource的R.array -->利用ArrayAdapter.createFromResource()參數傳遞
版面形式的決定
自訂R.layout.mytext
官方定的android.R.layout.simple
其中android.R.layout.simple_list_item_2需特別處理
ListView的變化重點
Android為ListView特製一個ListActivity,可以省略調色盤步驟。也可以省略findView動作,改用getListView()
資料的來源多樣化,例如
DB:內定位置 or SDCard位置 or 來自internet
File:內部空間 or SDCard or 來自internet
Resource:StringArray
程式內宣告:String【】,List
ArrayAdapter之版面調整
必須回到父類別"BaseAdapter"複寫getView(...)方法,才能達成
首先要以super.getView(...)取得原版面之view
再以此view做findViewById抓出要修改的元件id
最後加以修改
2013年10月9日 星期三
關於Screen OFF -->On的一些應用
Level-1:透過getWindow().setFlag()中的相關參數
能讓Screen OFF -->On時,讓App Unlock。
弱點:若此程式未被執行,則無法作用。
Level-2:透過攔截Screen On的Receiver啟動Level-1的App,達成Unlock。
弱點:若沒有人按下power鍵,使休息中的Screen OFF -->On,則無法作用。
Level-3:透過--遠端訊息(如簡訊、來電等等)之攔截,並以程式將Screen OFF -->On,則能啟動Level-2的App,連鎖反應,達成Unlock。
優點:不須人為操作power OFF -->On。
2013年10月3日 星期四
Custom View-客製化視圖
隨你的喜好製作View元件
作法
New一個class,繼承View(或其子類別)
需選取其【雙參數】建構子(Context、AttributeSets)
Why三參數不可以,原因待查,第二個參數為傳遞相關屬性
基本上都會複寫(overide) onDraw(Canvas canvas)或Draw(Canvas canvas)
其Canvas參數(意指【畫布】可用來進行繪圖,EXcanvas.drawCircle
其中會用到Paint物件,是作為畫筆()內定屬性有黑色、填滿模式
用法:
回到調色盤,其歸類為【Custom & Library View】,按下refresh應能找到此文件。
凡view所提共知相關方法都可以使用EX:visibility、OnClick、background color等
甚至改寫Button可放文字上去。
可以註冊onTouch,能對手是有更細分解:【按壓、滑動、離手】
客製元件的應用主要有兩類,一是整張畫布填滿畫面;二是將它視為一個元件
因此,若要當成元件,通常會以onMeasure()複寫,並在其中以setMeasuredDimension(W,H)來規範其大小。
常見的畫筆用法有
設定顏色
設定筆粗
設定筆觸風格【填滿或外框】
設定消除鋸齒狀
圖示滑動Custom View之原理
步驟一:按壓在(X0,Y0)->(10,10);
步驟二:移動在(X,Y)->(11,10);
步驟三:取得移動量(X-X0,Y-Y0)=(
1,0
);
步驟四:取得View所在視窗的位置(
v.getX(),v.getY()
);
步驟五:加上移動量(v.setX(
v.getX()+
1
),v.setY(
v.getY()+
0
));
較新的文章
較舊的文章
首頁
訂閱:
文章 (Atom)