Android Launcher界面中長應用名稱的垂直滾動顯示方法
【專利摘要】本發明提供一種Android?Launcher界面中長應用名稱的垂直滾動顯示方法,包括獲取所有應用信息并形成應用列表,為每一個應用創建PagedViewIcon;將需要垂直滾動顯示的PagedViewIcon單獨保存為一個List,將其顯示內容分割成多行顯示;每當到達刷新時間Update?Runnable線程發送消息給Handle線程,Handler線程更新List中的每一個PagedViewIcon的Index,并對其進行刷新,然后垂直滾動顯示應用名稱。本發明在Launcher的PagedViewIcon中通過顯示區域和顯示內容對長應用名稱進行分割,極大地方便了長應用名稱的快速顯示。
【專利說明】Andro i d Launcher界面中長應用名稱的垂直滾動顯示方法
【技術領域】
[0001] 本發明涉及一種應用名稱顯示方法,特別是涉及一種Android Launcher界面中長 應用名稱的垂直滾動顯示方法。
【背景技術】
[0002] 目前,在智能手機的Android系統中,Launcher界面下的應用顯示由應用圖標和 應用名稱組成。具體地,Android系統的Launcher提供了完整應用顯示和操作功能,顯示部 分采取了 Android常用的Activity和View的顯示結構。在系統開機后,Launcher會自動 運行,首先從系統中獲取所有已經安裝的應用信息;然后根據規則進行排序,組成List列 表;最后根據List列表在Activity中為每一個應用創建一個PagedViewIcon,并根據屏幕 顯示規則將每一個PagedViewIcon放置到對應的位置。PagedViewIcon繼承于TextView, 應用的名稱部分由TextView進行顯示,應用的圖標部分由PagedViewIcon自身進行管理。 PagedViewIcon根據屏幕大小來分配應用圖標和應用名稱的顯示區間。
[0003] 對于有些應用來說,為了清楚的表達應用本身的特點,會需要比較長的應用名稱。 而手機屏幕的大小有限,屏幕上顯示的應用的個數是固定的,這樣會導致每個應用的顯示 區間有限。對于長應用名稱而言,目前Android系統的Launcher界面采取的是截取顯示 的辦法。當顯示應用名稱時,Launcher會根據顯示區間的大小,能顯示多少就顯示多少, 很多時候對于最后一個字只能顯示一半,導致顯示效果不佳,且用戶體驗不好。有些時候, Android系統為中文時,應用名稱不長,可以在顯示區間進行完整的顯示。而切換到英文模 式時,英文應用名稱通常都會比較長,也會帶來應用名稱顯示不全的問題。
[0004] 由于應用名稱稱的顯示由TextView來完成,為了解決長應用名稱顯示問題,有些 方案充分使用了 TextView本身支持滾動顯示的特征,在PagedViewIcon創建過程中設置了 android:ellipsize = "marquee"屬性,從而可以實現長應用名稱的橫向滾動顯示。橫向滾 動顯示效果對于單行顯示來說,效果還可以;對于多行顯示來說,一個字一個字挪動的顯示 不僅顯示較慢,而且顯示效果不佳。
【發明內容】
[0005] 鑒于以上所述現有技術的缺點,本發明的目的在于提供一種Android Launcher界 面中長應用名稱的垂直滾動顯示方法,對于過長的應用名稱,會將名稱分解為數行,并根據 應用名稱顯示區域的大小,一次顯示一行或多行,然后垂直滾動顯示;對于顯示區域的中間 行,會用不同的顏色字體進行高亮顯示,從而不僅可以完整的顯示長應用名稱,還改進了用 戶體驗。
[0006] 為實現上述目的及其他相關目的,本發明提供一種Android Launcher界面中 長應用名稱的垂直滾動顯示方法,至少包括以下步驟:步驟SI、Launcher界面啟動后, 從Android系統獲取所有安裝的應用信息,對應用信息排序后形成應用列表,并為每一個 應用創建PagedViewIcon,設置應用圖標和應用名稱;步驟S2、對于需要垂直滾動顯示的 PagedViewIcon,將顯示內容分割成多行顯示,并保存在一個顯示List,以Index作為索 弓丨;步驟S3、將需要垂直滾動顯示的PagedViewIcon單獨保存為一個List,并啟動Update Runnable線程和Handle線程;步驟S4、Update Runnable線程每當到達刷新時間便發送消 息給Handle線程,Handler線程更新需要垂直滾動顯示的PagedViewIcon List中的每一個 PagedViewIcon的Index,然后調用PagedViewIcon的invalidate函數對需要垂直滾動顯 不的 PagedViewIcon List 中的每一個 PagedViewIcon 進行刷新,最后調用 PagedViewIcon 的onDraw函數來垂直滾動顯示應用名稱。
[0007] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S2中,對于需要垂直滾動顯示的PagedViewIcon,根據顯示區域和顯示內容長度將 顯示內容分割成多行顯示。
[0008] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S3中,只要有一個應用的應用名稱需要垂直滾動顯示,即啟動Update Runnable線 程和Handler線程。
[0009] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述Update Runnable線程是一個定時器線程,用于刷新定時器。
[0010] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S4中,每次到達所述Update Runnable線程的刷新時間時,若存在需要垂直滾動顯 示的PagedViewIcon,則Update Runnable線程發送消息給Handler線程;若不存在需要垂 直滾動顯示的PagedViewIcon,則退出Update Runnable線程和Handle線程。
[0011] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S4中,更新每一個PagedViewIcon的Index時,對當前Index進行Index++的操作;
[0012] 對于顯示區域的行數為1的情況,當執行Index++操作后Index大于顯示內容的 行數時,將Index設為第一行索引;
[0013] 對于顯示區域的行數大于1的情況,當執行Index++操作后,(顯示內容的行 數-Index)=(顯示區域的行數-2)時,將Index設為第一行索引。
[0014] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S4中,所述onDraw函數顯示應用名稱時,對于顯示區域的行數為1的情況,則直接 通過Index犾取對應的顯不內容,然后進彳丁商殼顯不。
[0015] 根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方法,其中:所 述步驟S4中,所述onDraw函數顯示應用名稱時,對于顯示區域的行數大于1的情況,則首 先確定高亮顯示的行數,然后從當前Index對應行的顯示內容開始依次將顯示區域的所有 行顯不滿,并對確定商殼顯不的行進行商殼顯不。
[0016] 進一步地,根據上述的Android Launcher界面中長應用名稱的垂直滾動顯示方 法,其中:確定高亮顯示的行數時,判斷顯示區域的行數η是否為奇數;若η為奇數,則高亮 顯示行數為Index+(n-l)/2 ;若η為偶數,則高亮顯示行數為Index+n/2。
[0017] 如上所述,本發明的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 具有以下有益效果:
[0018] (1)通過采用垂直滾動顯示方法,能夠很快地顯示一個完整的長應用名稱;
[0019] (2)對于中間行采取了高亮顯示,顯示效果更佳;
[0020] (3)對于屏幕中存在多個長應用名稱顯示的情況,采取了同步刷新機制,使得界面 上的顯示更加整齊,保證了良好的動態顯示效果;
[0021] (4)在Launcher的PagedViewIcon中通過顯示區域和顯示內容對長應用名稱進行 分割,極大地方便了長應用名稱的快速顯示。
【專利附圖】
【附圖說明】
[0022] 圖1顯示為本發明的Android Launcher界面中長應用名稱的垂直滾動顯示方法 的框架圖;
[0023] 圖2顯示為本發明的Android Launcher界面中長應用名稱的垂直滾動顯示方法 的流程圖;
[0024] 圖3顯示為本發明中多個PagedViewIcon同步刷新機制的示意圖;
[0025] 圖4顯示為本發明中onDraw函數顯示應用名稱的流程圖。
【具體實施方式】
[0026] 以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書 所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的具體實 施方式加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離 本發明的精神下進行各種修飾或改變。
[0027] 需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想, 遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪 制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可 能更為復雜。
[0028] 在Android系統中,Launcher界面中的應用圖標和應用名稱由PagedViewIcon 來實現,而PagedViewIcon繼承于TextView。本發明的Android Launcher界面中長應用 名稱的垂直滾動顯示方法主要涉及到PagedViewIcon和Launcher Activity。為了實現 長應用名稱的顯示,需要在Launcher對PagedViewIcon進行應用名稱賦值時,根據現實區 域將應用名稱分解成多行。由于Launcher界面中可能會有多個PagedViewIcon需要進行 垂直滾動顯示,為了同步每個PagedViewIcon的顯示,Launcher Activity需要啟動一個 單獨的刷新線程,每隔一定時間對需要垂直滾動顯示的PagedViewIcon發出Update命令, PagedViewIcon收到命令后,進行下一行的顯示。如果顯示到最后一行了,則從第一行重新 開始顯示。
[0029] 參照圖1和圖2,本發明的Android Launcher界面中長應用名稱的垂直滾動顯示 方法具體包括以下步驟:
[0030] 步驟SI、Launcher界面啟動后,從Android系統獲取所有安裝的應用信息,對應 用信息排序后形成應用列表,并為每一個應用創建PagedViewIcon,設置應用圖標和應用名 稱。
[0031] 其中,創建PagedViewIcon后,通過調用TextView的setText函數對 PagedViewIcon進行內容設置。然后根據屏幕大小對所有PagedViewIcon進行布局,將其放 置在屏幕的合適區域。
[0032] 步驟S2、對于需要垂直滾動顯示的PagedViewIcon,將顯示內容分割成多行顯示, 并保存在一個顯示List,以Index作為索引;
[0033] 在某些情況下,可能會發生顯示區域調整的狀況,此時系統會調用onSizeChanged 函數。對于長應用名稱,PagedViewIcon在重新設置顯示區域或顯示內容時,需要在 setText和onSizeChanged函數中根據顯示區域和顯示內容長度重新將顯示內容分割成多 行顯示,并保存一個顯示List中,以Index作為索引。顯示時,onDraw函數直接根據Index 從顯示List當中獲取對應行的顯示內容進行顯示即可,并對中間行進行高亮顯示,以增強 顯示效果。
[0034] 步驟S3、將需要垂直滾動顯示的PagedViewIcon單獨保存為一個List,并啟動 Update Runnable 線程和 Handle 線程。
[0035] 由于Launcher界面中可能會有多個應用需要垂直滾動顯示應用名稱,Luancher Activity在進行顯示內容或顯示區域設置時,首先需要得知哪些PagedViewIcon需要垂直 滾動顯示,然后將需要垂直滾動顯示的PagedViewIcon保存為一個List,以便刷新時使用。 只要有一個應用的應用名稱需要垂直滾動顯示,則啟動Update Runnable線程和Handler 線程。
[0036] 步驟S4、Update Runnable線程每當到達刷新時間便發送消息給Handle線程, Handler線程更新需要垂直滾動顯示的PagedViewIcon List中的每一個PagedViewIcon的 Index,然后調用PagedViewIcon的invalidate函數對需要垂直滾動顯示的PagedViewIcon List中的每一個PagedViewIcon進行刷新,最后調用PagedViewIcon的onDraw函數來垂直 滾動顯示應用名稱。
[0037] 參照圖3, Update Runnable線程實際上是一個定時器線程,起到刷新定時器的作 用。定時器時間一到,若存在需要垂直滾動顯示的PagedViewIcon,則Update Runnable線 程發送消息給Handler線程;若不存在需要垂直滾動顯示的PagedViewIcon,則退出Update Runnable線程和Handle線程。存在需要垂直滾動顯示的PagedViewIcon時,Handler線程 根據保存的需要垂直滾動顯示的PagedViewIcon List,更新List中每一個PagedViewIcon 的當前顯不Index,然后調用PagedViewIcon的invalidate函數對每一個PagedViewIcon 進行刷新,最后調用PagedViewIcon的onDraw函數來顯示應用名稱,至此即可達到垂直滾 動的顯示效果。
[0038] 更新所有的需要垂直滾動顯示的PagedViewIcon的Index時,對當前需要顯示的 Index進行Index++的操作即可。
[0039] 對于顯示區域的行數為1的情況,當執行Index++操作后Index大于顯示內容的 行數時,將Index設為第一行索引。即如果顯示到最后一行,則再從第一行開始重新顯示。
[0040] 對于顯示區域的行數大于1的情況,當執行Index++操作后,(顯示內容的行 數-Index)=(顯示區域的行數-2)時,將Index設為第一行索引。即當顯示區域最后一 行顯示的是顯示內容的最后一行時,即接下來從第一行開始進行顯示。如顯示內容的行數 為8行、顯示區域的行數為3行時,若當前顯示為6、7和8行,則下次刷新后顯示1、2和3 行。
[0041] 在Handler線程更新完Index之后,就開始進入PagedViewIcon的顯示流程。 onDraw函數顯示應用名稱時,對于顯示區域的行數為1的情況,則直接通過Index獲取對應 的顯示內容,然后進行高亮顯示。對于顯示區域的行數大于1的情況,則首先確定高亮顯示 的行數,然后從當前Index對應行的顯示內容開始依次將顯示區域的所有行顯示滿,對于 確定高亮顯示的行進行高亮顯示,其他的行進行普通顯示。
[0042] 參照圖4, onDraw函數顯示應用名稱的具體流程如下:
[0043] 判斷顯示區域是否只能顯示一行;
[0044] 若顯示區域只能顯示一行,則通過Index獲取當前行對應的顯示內容,并對該行 進行商殼顯不;
[0045] 若顯示區域可顯示多行,則判斷顯示區域所能顯示的行數η是否為奇數;若η為奇 數,則高亮顯示行數為Index+(n-l)/2 ;若η為偶數,則高亮顯示行數為Index+n/2 ;其中, 1彡Index彡(顯示內容的行數-顯示區域的行數+1);
[0046] 從Index開始進行文本顯示,并將Index賦值于displaylndex,其中 displaylndex表示當前顯示行的索引;
[0047] 判斷displaylndex是否顯示完成,若顯示完成,則流程結束;其中,當 displaylndex減去Index等于(n-1)時,表示顯示完成;
[0048] 若沒有顯示完成,判斷當前顯示行數是否為高亮顯示,若是,則獲取displaylndex 對應的顯示內容并進行高亮顯示;若否,則獲取displaylndex對應的內容并進行普通顯 示;
[0049] displaylndex累加 1后,再判斷displaylndex是否顯示完成,循環進行上述步驟, 直至顯示完成,流程結束。
[0050] 綜上所述,本發明的Android Launcher界面中長應用名稱的垂直滾動顯示方法通 過采用垂直滾動顯示方法,能夠很快地顯示一個完整的長應用名稱;對于屏幕中存在多個 長應用名稱顯示的情況,采取了同步刷新機制,使得界面上的顯示更加整齊,保證了良好的 動態顯示效果;在Launcher的PagedViewIcon中通過顯示區域和顯示內容對長應用名稱進 行分割,極大地方便了長應用名稱的快速顯示。所以,本發明有效克服了現有技術中的種種 缺點而具高度產業利用價值。
[0051] 上述實施例僅例示性說明本發明的原理及其功效,而非用于限制本發明。任何熟 悉此技術的人士皆可在不違背本發明的精神及范疇下,對上述實施例進行修飾或改變。因 此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完 成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
【權利要求】
1. 一種Android Launcher界面中長應用名稱的垂直滾動顯示方法,其特征在于:至少 包括以下步驟: 步驟Sl、Launcher界面啟動后,從Android系統獲取所有安裝的應用信息,對應用信息 排序后形成應用列表,并為每一個應用創建PagedViewIcon,設置應用圖標和應用名稱; 步驟S2、對于需要垂直滾動顯示的PagedViewIcon,將顯示內容分割成多行顯示,并保 存在一個顯示List,以Index作為索引; 步驟S3、將需要垂直滾動顯示的PagedViewIcon單獨保存為一個List,并啟動Update Runnable線程和Handle線程; 步驟S4、Update Runnable線程每當到達刷新時間便發送消息給Handle線程,Handler 線程更新需要垂直滾動顯示的PagedViewIcon List中的每一個PagedViewIcon的Index, 然后調用PagedViewIcon的invalidate函數對需要垂直滾動顯示的PagedViewIcon List 中的每一個PagedViewIcon進行刷新,最后調用PagedViewIcon的onDraw函數來垂直滾動 顯示應用名稱。
2. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述步驟S2中,對于需要垂直滾動顯示的PagedViewIcon,根據顯示區域和顯 示內容長度將顯示內容分割成多行顯示。
3. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方 法,其特征在于:所述步驟S3中,只要有一個應用的應用名稱需要垂直滾動顯示,即啟動 Update Runnable 線程和 Handler 線程。
4. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述Update Runnable線程是一個定時器線程,用于刷新定時器。
5. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述步驟S4中,每次到達所述Update Runnable線程的刷新時間時,若存在需 要垂直滾動顯示的PagedViewIcon,則Update Runnable線程發送消息給Handler線程;若 不存在需要垂直滾動顯示的PagedViewIcon,則退出Update Runnable線程和Handle線程。
6. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述步驟S4中,更新每一個PagedViewIcon的Index時,對當前Index進行 Index++的操作; 對于顯示區域的行數為1的情況,當執行Index++操作后Index大于顯示內容的行數 時,將Index設為第一行索引; 對于顯示區域的行數大于1的情況,當執行Index++操作后,(顯示內容的行 數-Index)=(顯示區域的行數-2)時,將Index設為第一行索引。
7. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述步驟S4中,所述onDraw函數顯示應用名稱時,對于顯示區域的行數為1 的情況,則直接通過Index獲取對應的顯示內容,然后進行高亮顯示。
8. 根據權利要求1所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:所述步驟S4中,所述onDraw函數顯示應用名稱時,對于顯示區域的行數大于 1的情況,則首先確定高亮顯示的行數,然后從當前Index對應行的顯示內容開始依次將顯 不區域的所有行顯不滿,并對確定1?殼顯不的行進行1?殼顯不。
9.根據權利要求8所述的Android Launcher界面中長應用名稱的垂直滾動顯示方法, 其特征在于:確定高亮顯示的行數時,判斷顯示區域的行數η是否為奇數;若η為奇數,則 高亮顯示行數為Index+(n-l)/2 ;若η為偶數,則高亮顯示行數為Index+n/2。
【文檔編號】G06F9/44GK104090755SQ201410276184
【公開日】2014年10月8日 申請日期:2014年6月19日 優先權日:2014年6月19日
【發明者】田澤豐 申請人:上海斐訊數據通信技術有限公司