在Android中設(shè)置窗口背景圖
Android窗口管理
在整個(gè)控件樹的最頂端,是一個(gè)邏輯的樹頂,ViewParent,在源碼中的實(shí)現(xiàn)是ViewRoot(ViewRoot extends Handler implements ViewParent)。它是整個(gè)控件樹和WindowManager之間的事件信息的翻譯者。WindowManager是Android中一個(gè)重要的服務(wù)。它將用戶的操作,翻譯成為指令,發(fā)送給呈現(xiàn)在界面上的各個(gè)Window。Activity會(huì)將頂級(jí)的控件注冊(cè)到WindowManager中,當(dāng)用戶真是觸碰屏幕或鍵盤的時(shí)候,WindowManager就會(huì)通知到,而當(dāng)控件有一些請(qǐng)求產(chǎn)生,也會(huì)經(jīng)由ViewParent送回到WindowManager中。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區(qū)別:
Android2.1(含)以后的版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個(gè)目錄,這三個(gè)目錄主要是為了支持多分辨率。
dpi是“dot per inch”的縮寫,每英寸像素?cái)?shù)。
四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
WVGA,HVGA,QVGA的區(qū)別
VGA是”Video Graphics Array”,顯示標(biāo)準(zhǔn)為 640*480。
WVGA(Wide VGA)分辨率為 480*800
HVGA(Half VGA)即VGA的一半分辨率為 320*480
QVGA(Quarter VGA)即VGA非四分之一分辨率為240*320
drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的聯(lián)系
hdpi里面主要放高分辨率的圖片,如WVGA (480×800),FWVGA (480×854) 長寬比 5:3
mdpi里面主要放中等分辨率的圖片,如HVGA (320×480) 長寬比 3:2
ldpi里面主要放低分辨率的圖片,如QVGA (240×320) 長寬比 4:3
系統(tǒng)會(huì)根據(jù)機(jī)器的分辨率來分別到這幾個(gè)文件夾里面去找對(duì)應(yīng)的圖片。
在開發(fā)程序時(shí)為了兼容不同平臺(tái)不同屏幕,我們可以上面制定長寬比裁剪圖片,并確保有足夠分辨率,并把它放入對(duì)應(yīng)目錄即可。
比如我們希望設(shè)置我們應(yīng)用窗口的背景,則可以簡單的用上面提到的規(guī)范裁剪對(duì)應(yīng)的圖片,然后做下面步驟即可:
1、將背景圖片COPY到對(duì)應(yīng)的drawable文件夾中,假設(shè)這里用的是bg1.png
2、修改main.xml,添加 android:background="@drawable/bg1" 即可:
3、這時(shí)候的布局文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@drawable/bg1">
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Hello Android"/>
- </LinearLayout>
【編輯推薦】
Android 2.2系統(tǒng)的十個(gè)實(shí)用小技巧