編輯:關於Android編程
假設有如下分辨率機器:
800 x 480
1024 x 600
1024 x 768
1280 x 800
1920 x 1200
2048 x 1536
總共六種類分辨率機器,如果按照dp為單位來細分可以分為幾種呢?
首先通過context.getResources().getDisplayMetrics().density獲取到當前機器的屏幕密度,然後通過dp = px/density進行換算可以得到機器對應的以dp為單位的大小。比如,我分別打出了自己手裡面設備對應的dp,值如下:
設備px大小
設備屏幕密度dpi
設備dp大小
對應的最小寬度
800 x 480
1
800 x 480
Sw480dp
1024 x 600
1
1024 x 600
Sw600dp
1024 x 768
1
1024 x 768
Sw720dp
1280 x 800
1,另外一台機器是1.5
1280 x 800 另外一台是853 x 533
Sw720dp 另外一台是Sw480dp
1920 x 1200
1.5
1280 x 800
Sw720dp
2048 x 1536
2
1024 x 768
Sw720dp
表一 設備dp 最小寬度描述表
關於最小寬度的概念可以看下面描述:
屏幕的基本尺寸,是指最短的可用屏幕區域。具體的說,設備的最小寬度是屏幕可用的寬度和高度中最短的那個(也可以把它看做是屏幕的最小可能的寬度)。這樣就可以使用這個限定符來確保應用程序至少有
例如,如果布局在任何時候都需要至少600dp的最小屏幕尺寸,那麼就能夠使用這個限定符,在res/layout-sw600dp/目錄中創建布局資源。系統只會在可用屏幕的尺寸至少是600dp的時候才會使用這些資源,而不管600dp是否是被用戶認知的高度或寬度。最小寬度是設備的固定屏幕尺寸特征,當屏幕的方向發生改變時,設備的最小寬度不改變。
設備的最小寬度需要考慮屏幕的裝飾和系統UI的占用。例如,如果設備有一些固定的UI元素要沿著最小寬度的軸向,占用一定的屏幕空間,那麼系統聲明的最小寬度要比實際的屏幕尺寸要小,因為被系統占用的像素部分對用戶應用程序的UI無效。因此,這個值應該是應用程序布局所需要的最小的實際尺寸(通常,這個值是布局支持的最小寬度,而不管屏幕的當前方向)。
以下是可以使用的通用屏幕尺寸的一些值:1.320,針對以下屏幕配置的設備:
240x320ldpi(QVGA手持設備)
320x480mdpi(手持設備)
480x800hdpi(高分辨率手持設備)
2.480,針對480x800mdpi的屏幕(平板或手持設備)
3.600,針對600x1024mdip的屏幕(7英寸平板)
4.720,針對720x1280mdip的屏幕(10英寸平板)
當應用程序提供了多個帶有不同值的最小寬度限定符資源目錄時,系統會使用最接近(不超出)設備最小寬度的那個資源。
這個限定符被添加在API級別13中。
還要看android:requiresSmallestWidthDp屬性,它聲明了與你的應用程序兼容的最小的最小寬度,並且smallestScreenWidthDp配置字段會持有這個設備最小寬度的值。
從表一可以看到,七個設備、六種分辨率對應了三中最小寬度,因此我們適配了這幾種不同 最小寬度的情況就可以完成對上面所有機型的適配。怎樣根據最小寬度來適配不同機型呢?其實很簡單,只需要自定義下面幾個文件夾裡面的文件就可以了。
res/layout-sw320dp
res/layout-sw480dp
res/layout-sw600dp
res/layout-sw720dp
res/values-sw320dp
res/values-sw480dp
res/values-sw600dp
res/lvalues-sw720dp
舉個例子,假如我在做第一款機器的時候,所有的UI尺寸都是以720dp的機器來配置的,那麼對應到最小寬度為600dp的機器就應該是所有的尺寸大小除以1.2,對應到最小寬度為480dp的機器就應該是所有的尺寸大小除以1.5,依次類推。
當然,前提是你在布局裡面的尺寸都是用dp為單位,字體用sp或者dp為單位。
1.介紹RecyclerView是比 ListView 更高級且更具靈活性的組件。 此組件是一個用於顯示龐大數據集的容器,可通過保持有限數量的視圖進行非常有效的滾動操作。
有一種需要,我們在菜單項中點擊退出應用程序,應用程序就退出,不需要回到MainActivity設計:有兩個應用界面MainActivity和BActivity,以及用於程
Java初學者直接在Java源碼使用hello 和123 類型的字符串和整型,但時間長了就會忘記當初定義的原因,有經驗的也許會定義字符串常量ResultSet.TYPE_
1、3個相關API接口 Android網絡編程相關的API接口與相關用途如下圖 2、 2種網絡架構模式 B/S----浏覽器/服務器端模式