編輯:關於Android編程
要適配不同的屏幕,首要需要的是要能夠將不同的屏幕分辨出來,android提供了若干不同的維度來進行限定(qualifier,有的翻譯為限定詞)
上圖所示為常用的一些維度,不過不是全部,全部的維度可以在官方的列表中查找。
圖中從左到右按照箭頭指示方向的優先級依次降低(查找匹配資源的時候會用到優先級),同時在對res子目錄采用限定詞進行命名的時候,也必須按照這個優先級進行命名,例如res-sw600dp-port是對的而res-port-sw600dp就會出現編譯錯誤。有些維度可以有很多不同的具體參數,如smallestWidth,有些只能有固定的一些選擇,如語言,屏幕方向port/land這種。
以下分別來介紹各個維度:
1、語言(zh-rCN), 主要可以用ISO 639-1標准定義的兩個字母的語言代碼
2、smallestWidth最短可用寬度(sw-
適配流程:當多個目錄都使用了該限定詞的時候,匹配原則為不大於可用寬度的最大值。即如果屏幕最短邊為1536,屏幕密度為xhdpi(即320dpi),1536/2 = 768,則在所有的sw-
3、available width(w-
4、screenSize屏幕尺寸,根據屏幕對角線大小來界定(單位inch-英寸),可分為small/normal/large/xlarge。適配順序為從高到低,如果只有超過當前實際尺寸的目錄中有定義,則crash。這個維度從android3.2開始已經不建議使用,建議采用shortestWidth。
5、屏幕方向,這個是最簡單的,橫向縱向
6、Screen density屏幕密度(dots per inch),ldpi/mdpi/hdpi/xhdpi/xxhdpi分別對應的屏幕密度為120/160/240/320/480/640dpi,在放置資源的時候資源大小也要按照相應比例。(決定1dp代表多少pixel)。
適配流程:優先從當前屏幕密度匹配的目錄查找,如果沒有則不斷向上層查找(傾向於將大圖片縮小,而不是小圖片放大),如果上層沒有則向下層查找,如果都沒有,才取默認的目錄,定位到特定目錄後,會根據定位到的目錄與當前屏幕密度的比例關系進行縮放操作。
7、分辨率 (800*480),官方文檔上已經沒有,但目前仍可使用,優先級介於nav和platform之間,適配順序為從高到低
8、Platform version:參見Api Levels。適配順序也是從高到低
1、為不同的屏幕尺寸及方向提供不同的layout,dimen
2、為不同的屏幕密度dpi提供不同的drawable
3、提供默認資源防止crash
4、修改某個目錄下的值的時候,確認其上層是否有配置該參數值,如果有,則可以直接修改;如果沒有,則要將本層的值復制到上層之後再來修改本層的值
先看看效果圖:實現思路:擦除圖片相應的角,然後層疊圖片,產生傾斜效果代碼實現:1、定義屬性在values文件夾下的attrs文件添加以下代碼<resources&g
前言:好幾天電腦打不開CSDN博客,也不知道怎麼回事,今天下班回來突然能打開了,遂將周末實現的一個效果貼上。實現功能:獲取手機應用圖標,名稱,時間(安裝時間/更新時間),
效果圖思路首先我們來分析一下實現九宮格解鎖的思路:當用戶的手指觸摸到某一個點時,先判斷該點是否在九宮格的某一格范圍之內,若在范圍內,則該格變成選中的狀態;之後用戶手指滑動
一、概述講解優化查詢相冊圖片之前,我們先來看下PM提出的需求,PM的需求很簡單,就是要做一個類似微信的本地相冊圖片查詢控件,主要包含兩個兩部分: 進入圖片選擇頁面就要顯