編輯:關於Android編程
當最新的Android版本為你的應用提供著很棒的APIs時,你卻要在更多的設備更新之前繼續支持老的系統版本。這篇課程如何在繼續支持低版本的系統的情況下使用新版本的高級API。
Platform Versions 儀表板展示了最新的活躍設備上運行的Android系統版本的分布,基於設備訪問Google Play商店的次數。通常情況下,支持90%的活躍設備同時使用最新版本作為target是一個好習慣。
貼士: 為了在不同的Android版本上提供最好的特性和功能,你應該在你的應用中使用Android Support Library ,它能夠允許你在老版本的系統上使用一些最近版本的APIs。
AndroidManifest.xml 文件描述了你的應用的詳情以及它支持的系統版本。 特別的,targetSdkVersion
屬性分別指定了應用最低兼容的API級別以及你為應用所設計以及測試的最高API級別。
例如:
...
由於新版的Android系統發布,一些樣式和行為肯能改變。為了允許你的應用利用這些改變並且確保你的應用使用每個用戶的設備,你需要將targetSdkVersion
的值設置為最低可用的Android版本。
Android為每個平台版本在Build
常量類中提供了唯一的標識碼。在你的應用中使用這個標識碼來創建條件確保只有在系統版本支持的情況下執行高API級別的代碼。
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
提示: 當解析XML資源時,Android系統會忽略XML屬性不被當前設備支持的情況。因此你可以安全的使用只支持最新版本的XML屬性而不用擔心在老版本上會崩潰。例如,如果你設置targetSdkVersion="11"
,你的應用在默認情況下再Android 3.0或更高版本中包含ActionBar
。然後要為action
bar添加菜單項目,你需要在你的menu下的資源文件中設置android:showAsAction="ifRoom"
。在一個跨版本的XML文件中這樣做也是完全沒問題的,因為老版本的Android直接忽略了這個屬性(這樣的話,你就沒有必要分開創建一個res/menu-v11/
目錄)。
Android為用戶提供了用戶體驗主題,它賦予應用底層操作系統的界面和感覺。這些主題可以在你的應用的清單文件中被應用。通過設用這些內置的樣式和主題,你的應用就會具有每個發布版本的界面和感覺。
讓你的activity看起來像一個對話框:
讓你的activity背景透明:
應用你的在/res/values/styles.xml
中定義的自定義主題:
要讓主題應用到整個應用中(所有的activity),在 元素中添加android:theme屬性:
更多關於創建和使用主題,請參閱Styles and Themes向導。
最近事情很忙,一個新項目趕著出來,但是很多功能都要重新做,一直在編寫代碼、Debug。今天因為一個新程序要使用Fragment來做,雖然以前也使用過Fragment,不過
作為一只安卓自學的小白,今天第一天發表微博還是有點小激動的,好了,廢話少說下面開始我的安卓自定義控件知識總結。我的demo是一個自定義的TopBar,左邊一個Button
首先我發現API還提供一個畫多邊形的類。而一個镂空圓分解成兩個多邊形,即橫著一刀切在這個镂空圓上,上下兩部分各為一個多邊形。但實現上述镂空圓時我的思路還是講經緯度看出笛卡
0. 介紹此文將對Github上lguipeng大神所開發的 極簡筆記 v2.0 (點我下載源碼)代碼進行分析學習。通過此文你將學到:應用源碼的研讀方法 MVP架構模式