android 修改launcher行數(shù)和列數(shù)的方法
android 修改launcher行數(shù)和列數(shù)
Launcher3桌面的行數(shù)和列數(shù)都是在InvariantDeviceProfile.java和DeviceProfile.java中動態(tài)計算的,xml中無法配置。
Note:L版本無InvariantDeviceProfile.java,是DynamicGrid.java,但是計算方法都是一樣的。
InvariantDeviceProfile中用InvariantDeviceProfile來配置各種屏幕的手機桌面。如下:
InvariantDeviceProfile的各個參數(shù)依次代表:
配置名字(任意定義)、最小寬度(單位是dp)、最小高度(單位是dp)、桌面行數(shù)、桌面列數(shù)、文件夾行數(shù)、文件夾列數(shù)、主菜單中predicted apps最小列數(shù)、桌面Icon的size(單位是dp)、桌面Icon的文字size(單位是dp)、Hotseat的Icon個數(shù)、Hotseat的Icon的size(單位是dp)、默認(rèn)的桌面配置LayoutId。
PS:
如何由手機分辨率計算最小寬度、最小高度?
例如:手機分辨率為720*1280,DPI=320。
豎屏?xí)r:X*Y=720*1230(1230=屏幕高度-狀態(tài)欄高度-NavigationBar高度)
橫屏?xí)r:Y*X=646*1280(646=屏幕寬度-狀態(tài)欄高度-NavigationBar高度)
最小寬度為:323=Min(720,646)/(320/160)
最小高度為:615=Min(1230,1280)/(320/160)
如果要配置自己手機桌面的行數(shù)、列數(shù)、Hotseat的Icon個數(shù),需要計算"桌面Icon的size、桌面Icon的文字size、Hotseat的Icon的size",計算方式如下:
1、挑選三個和自己的手機配置最接近的DeviceProfile。最接近意味著dn 最小。
dn 的計算公式為:

2、由逆距離加權(quán)插值計算結(jié)果,計算公式如下:

計算結(jié)果為:
r1+r2+r3
例如:手機的最小寬度為294dp,最小高度為544dp。
1、挑選三個和自己的手機配置最接近的DeviceProfile:
▪Nexus S,distance is 52
▪Nexus 4,distance is 69
▪Stubby,distance is 102
2、由逆距離權(quán)重差值計算結(jié)果:

Hotseat的Icon的size為:37.57+10.65+1.29 = 49dp
dp轉(zhuǎn)換為px:如果手機DPI=240,那么dp應(yīng)該乘以1.5(240/160)轉(zhuǎn)換為px,即49dp=73.5px。
桌面Icon的size、桌面Icon的文字size 計算與此類似。
總結(jié)
以上所述是小編給大家介紹的android 修改launcher行數(shù)和列數(shù)的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android webView如何輸出自定義網(wǎng)頁
這篇文章主要介紹了Android webView如何輸出自定義網(wǎng)頁,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Android SQLite3多線程操作問題研究總結(jié)
這篇文章主要介紹了Android SQLite3多線程操作問題研究總結(jié),本文總結(jié)了SQLite3是否支持多線程、SQLiteDatabase的同步鎖、多線程讀數(shù)據(jù)庫等問題,需要的朋友可以參考下2015-03-03
詳解Android Handler機制和Looper Handler Message關(guān)系
Handler是Android線程之間的消息機制,主要的作用是將一個任務(wù)切換到指定的線程中去執(zhí)行,準(zhǔn)確的說是切換到構(gòu)成Handler的looper所在的線程中去出處理。本文將詳細(xì)介紹Android Handler機制和Looper Handler Message關(guān)系。2021-06-06

