在Android中設置窗口背景圖
Android窗口管理
在整個控件樹的最頂端,是一個邏輯的樹頂,ViewParent,在源碼中的實現是ViewRoot(ViewRoot extends Handler implements ViewParent)。它是整個控件樹和WindowManager之間的事件信息的翻譯者。WindowManager是Android中一個重要的服務。它將用戶的操作,翻譯成為指令,發送給呈現在界面上的各個Window。Activity會將頂級的控件注冊到WindowManager中,當用戶真是觸碰屏幕或鍵盤的時候,WindowManager就會通知到,而當控件有一些請求產生,也會經由ViewParent送回到WindowManager中。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
Android2.1(含)以后的版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個目錄,這三個目錄主要是為了支持多分辨率。
dpi是“dot per inch”的縮寫,每英寸像素數。
四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
WVGA,HVGA,QVGA的區別
VGA是”Video Graphics Array”,顯示標準為 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的聯系
hdpi里面主要放高分辨率的圖片,如WVGA (480×800),FWVGA (480×854) 長寬比 5:3
mdpi里面主要放中等分辨率的圖片,如HVGA (320×480) 長寬比 3:2
ldpi里面主要放低分辨率的圖片,如QVGA (240×320) 長寬比 4:3
系統會根據機器的分辨率來分別到這幾個文件夾里面去找對應的圖片。
在開發程序時為了兼容不同平臺不同屏幕,我們可以上面制定長寬比裁剪圖片,并確保有足夠分辨率,并把它放入對應目錄即可。
比如我們希望設置我們應用窗口的背景,則可以簡單的用上面提到的規范裁剪對應的圖片,然后做下面步驟即可:
1、將背景圖片COPY到對應的drawable文件夾中,假設這里用的是bg1.png
2、修改main.xml,添加 android:background="@drawable/bg1" 即可:
3、這時候的布局文件如下:
- <?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>
【編輯推薦】