android 中幾個常用屬性的設定
1、自定義Android標題欄TitleBar佈局
很多網友發現自己Android程式的標題欄TitleBar區域很單調,如果想個性化一些可以通過下面的方法來為自己軟體的標題定製一個layout佈局檔案,比如瀏覽器的標題欄,它包含了網站的Favicon,自定義的進度條,和不確定的進度指示等等,實現的方法自己控制吧。下面程式碼在onCreate中使用,同時順序不要改變,否則將無法生效:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main); //軟體activity的佈局
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar為自己標題欄的佈局
2、Android全屏設定程式碼
如果你在開發遊戲或一個主題風格很特別的應用可能需要全屏顯示,在Android中全屏視窗的程式碼很簡單,主要分為兩個步驟和一個注意點:
requestWindowFeature(Window.FEATURE_NO_TITLE); //隱藏標題
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //設定全屏
注意的是這些呼叫要放在SetContentView前面,否則無法生效或結果有出入。
3、獲取Android螢幕方向及鍵盤狀態
很多開發Android的網友可能需要判斷當前的螢幕方向或鍵盤狀態,下面的程式碼可以判斷出橫屏landscape和常規的portrait縱握方式,如果使用的是G1這樣有QWERTY鍵盤硬體的,還可以判斷螢幕方向以及鍵盤的拉出狀態。
Configuration config = getResources().getConfiguration();
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE){
//橫屏,比如 480x320
}else if(config.orientation == Configuration.ORIENTATION_PORTRAIT){
//豎屏 ,標準模式 320x480
}else if(config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_NO){
//橫屏,Android123提示物理鍵盤滑出了
}else if(config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES){
//豎屏,鍵盤隱藏了
}
4、Android佈局Java程式碼構造法
一般情況下對於Android程式佈局我們往往使用XML檔案來編寫,這樣可以提高開發效率,但是考慮到程式碼的安全性以及執行效率,可以通過Java程式碼執行建立,雖然Android編譯過的xml是二進位制的,但是載入xml解析器的效率對於資源佔用還是比較大的,一般一個簡單的TextView,比如
<TextView
android:id="@+id/textControl "
android:layout_width="100px"
android:layout_height="wrap_content" />
可以等價於下面的Java程式碼:
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(100, LayoutParams.WRAP_CONTENT); //寬度為100px,高為自適應最小的高度
// setOrientation(VERTICAL); 設定佈局為垂直
TextView textControl = new TextView(this);//如果從一個XXXLayout.,比如LinearLayout為View的基類時這裡this應該換成為建立改類的Context
textControl.setText("Android開發網歡迎您");
addView( textControl, textParams );
當然Java處理效率比XML快得多,但是對於一個複雜介面的編寫,可能需要一些套嵌考慮,如果你思維靈活的話,使用Java程式碼來佈局你的Android應用程式是一個更好的方法。
5、讓你的Android程式相容多種解析度
隨著Android機型的不斷增多,從預設HVGA 320x480 到 WVGA 480x800 、FWVGA 480x854 以及QVGA的240x320,如果要保證這些機型的正常顯示,可能涉及到圖片資源單獨設計,雖然有朋友考慮使用9patch方法可以解決拉伸,但是我們要考慮如果一個主程式的背景圖片,可能原來為480x800的Nexus One上正常執行,但是到了HTC Tattoo的240x320,可以想想是什麼樣子。Android開發網提示大家對於Android 2.0而言資源要單獨考慮,不然無法正常被載入。如下圖很多都加了v6的字樣。
我們將對上面的資料夾命名方式做詳細的解釋: drawable-hdpi 這個hdpi代表high dpi,一般為 WVGA或 FWVGA解析度的圖片,如480x800,而mdpi 代表 mid dpi,一般為HVGA,如320x480。而 ldpi為 low dpi,一般為QVGA,如240x320。而下面layout中的land代表橫屏時的佈局。但是有些網友可能發現了 -v6的字樣android123提示這是 Android 2.0開始出現一些bug的解決方法。 -v6是專門為2.0韌體的機型設計的。 v6代表 API Level 6