編輯:Android開發教程
1、在Android4.0環境下編譯的actionbarsherlock、slidingmenu類庫,能不能在4.0以下的版本中使用
相信很多人跟我一樣,都以為在低版本(如Android2.1或2.3版本)編譯的應用能夠在高版本中運行,但高版本(比如Android3.0或4.0)中編譯的應用恐怕就不能在低版本中運行。於是,我們可能就會想方設法地把一些在高版本中編譯的代碼,改成在低版本的Android SDK中編譯,以便兼容。我們一直忽視了在<manifest>文件中關於兼容性的聲明,如下面代碼段。
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
android:minSdkVersion就聲明了應用可以運行在最小的什麼API版本之上。我們如何知道,一個應用可以運行在什麼API上面呢?常查Android Reference(API文檔)的同學,應該對下面這幅圖很熟悉。
在API Reference中不僅說明了你調用的函數的功能,也說明了它是在什麼版本API中引入的(見紅框處)。從而我們需要檢查一下自己應用中的系統調用函數的是在什麼版本的API中引入的。
slidingmenu的兼容性聲明
actionbarsherlock的兼容性聲明
上面兩幅圖分別是slidingmenu、actionbarsherlock的兼容性說明。如果我們只使用slidingmenu,那麼我們的應用裡面的兼容性說明的android:minSdkVersion只要大於5就行了,如果同時使用slidingmenu、actionbarsherlock,那麼android:minSdkVersion就必須至少是7。
對於Android高版本中引入的SDK,一般google都會推出相應的兼容包。比如在Android3.0才推出的Fragment相關API,在android-support-v4這個兼容包中就有對應的兼容API,詳見創建Fragment。
最後,做一個結論,在高版本的環境下(如Android4.0)編譯的應用能不能在低版本的Android系統中運行不是看編譯的SDK版本,而是取決於android:minSdkVersion這個最小API版本聲明。
當然,你不能聲明了android:minSdkVersion是5,結果在引用中使用了android:minSdkVersion為11才引入的API。
2、遇到“IllegalStateException: Both setBehindContentView must be called in onCreate in addition to setContentView.”錯誤
這個錯誤是在一啟動,還沒見到界面的時候,就爆出的錯誤。這是因為在代碼中,缺少 setBehindContentView(R.layout.menu_frame)。而這個函數主要就是用來決定側邊欄長什麼樣的。
public class BaseActivity extends SlidingFragmentActivity
而這又是因為我的Activity繼承了SlidingFragmentActivity(見下面代碼段),這個特殊的Activity本身就帶有側邊欄,因此必須在OnCreate函數那裡就調用setBehindContentView()函數來設置側邊欄的樣式。
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
這篇文章算是對整個引導界面開發專題的一個終結了吧,個人覺得大部分的引導界面基本上都是千篇一律 的,只要熟練掌握了一個,基本上也就沒什麼好說的了,要是在今後的開發中遇到了
記得在我剛接觸Android的時候對系統聯系人中的特效很感興趣,它會根據手機中聯系人姓氏的首字母進 行分組,並在界面的最頂端始終顯示一個當前的分組。如下圖所示:最讓我感興
Gallery組件主要用於橫向顯示圖像列表,不過按常規做法。Gallery組件只能有限地顯示指定的圖像。也就是說,如果為Gallery組件指定了10張圖像,那麼當Gall
FrameLayout就是屏幕上的一個“定位器”,可以使用它去顯示一個單一的視圖。被添加到FrameLayout上 的視圖views總是被固定在這
Preferences之間可以定義依賴關系,在第一個例子中已有說明。對應