創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的遂昌網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
移動(dòng)開發(fā)Android經(jīng)驗(yàn)分享應(yīng)用GoogleMaterial Design
摘要:前 段時(shí)間,Google公布了Android開發(fā)最佳實(shí)踐的一系列課程,涉及到一些平時(shí)開發(fā)過程中應(yīng)該保持的良好習(xí)慣以及如何使用最新的Android Design Support Library來快速實(shí)現(xiàn)官方推薦的Material Design樣式的應(yīng)用。
10月14日-16日,由CSDN和創(chuàng)新工場聯(lián)合主辦的MDCC 2015中國移動(dòng)開發(fā)者大會(huì)將在北京新云南皇冠假日酒店隆重召開,現(xiàn)在搶注大會(huì)門票,即享多重好禮!猛戳>>立即搶票。本文作者,平臺(tái)與技術(shù)Android專場演講嘉賓——騰訊Android工程師 胡凱熱愛開源與分享,維護(hù)Android官方培訓(xùn)課程協(xié)作項(xiàng)目,關(guān)注Android應(yīng)用的性能優(yōu)化的總結(jié)與分享,推崇Android官方最佳實(shí)踐。
前段時(shí)間,Google公布了 Android開發(fā)最佳實(shí)踐的一系列課程,涉及到一些平時(shí)開發(fā)過程中應(yīng)該保持的良好習(xí)慣以及如何使用最新的 Android Design Support Library來快速實(shí)現(xiàn)官方推薦的Material Design樣式的應(yīng)用。下面是個(gè)人的學(xué)習(xí)摘要總結(jié),不對的地方請多多交流指點(diǎn),謝謝!
類似打開相機(jī),發(fā)送圖片等隱式Intent,是并不一定能夠在所有的Android設(shè)備上都正常運(yùn)行。例如打開相機(jī)的隱式Intent,如果系統(tǒng)相 機(jī)應(yīng)用被關(guān)閉或者不存在相機(jī)應(yīng)用,又或者是相機(jī)應(yīng)用的某些權(quán)限被關(guān)閉等等情況都可能導(dǎo)致這個(gè)隱式的Intent無法正常工作。一旦發(fā)生隱式Intent找 不到合適的調(diào)用組件的情況,系統(tǒng)就會(huì)拋出ActivityNotFoundException的異常,如果我們的應(yīng)用沒有對這個(gè)異常做任何處理,那應(yīng)用就 會(huì)發(fā)生Crash。
預(yù)防這個(gè)問題的最佳解決方案是在發(fā)出這個(gè)隱式Intent之前調(diào)用resolveActivity做檢查,關(guān)于這個(gè)API的解釋以及用法如下:
然后這個(gè)API的使用范例如下:
[java]view plaincopy
Intent intent = new Intent(Intent.ACTION_XXX);
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null) {
String className = componentName.getClassName();
}
為了解決Android系統(tǒng)版本差異導(dǎo)致的Notification兼容性問題,Android官方提供了 NotificationCompat兼容類來幫助開發(fā)實(shí)現(xiàn)體驗(yàn)統(tǒng)一的Notification。通常來說,建立一個(gè)Notification至少會(huì)有三 種元素:圖標(biāo),標(biāo)題,文本。我們通常會(huì)使用如下的代碼來實(shí)現(xiàn)一個(gè)基礎(chǔ)的Notification功能:
上面那段代碼,運(yùn)行時(shí)候的效果應(yīng)該如下所示:
為了給上面的Notification添加點(diǎn)擊之后的響應(yīng)效果,我們還需要構(gòu)造一個(gè)PendingIntent作為contentIntent,例如:
[java]view plaincopy
PendingIntent intent = xxx;
builder.setContentIntent(intent);
為了使得Notification更加的具有辨識(shí)度,我們還有可能做如下的設(shè)置:
從Android 4.1開始,Notification可以支持展開顯示的模式,這樣一來,Notification就演變出了下面4種不同的風(fēng)格樣式:
Notification還提供了快捷操作的功能,如下圖所示:
除了顯示在手機(jī)上的Notification,我們還可以給Notification分別設(shè)置在Wearable,Auto上的不同表現(xiàn)行為,例如針對可穿戴設(shè)備上顯示Notification,我們可以如下的設(shè)置:
關(guān)于更多的Wearable上的Notification相關(guān)的知識(shí),還可以參考 Pages of Content與 Stackable Notifications。