本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及toast顯示方法及裝置。
背景技術(shù):
toast是android中的一種簡(jiǎn)易的消息提示框。當(dāng)視圖顯示給用戶(hù),在應(yīng)用程序中顯示為浮動(dòng)。toast永遠(yuǎn)不會(huì)獲得焦點(diǎn),無(wú)法被點(diǎn)擊。toast類(lèi)的思想就是盡可能不引人注意,同時(shí)還向用戶(hù)顯示信息,希望他們看到。而且toast顯示的時(shí)間有限,toast會(huì)根據(jù)用戶(hù)設(shè)置的顯示時(shí)間后自動(dòng)消失。
在android開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用到toast來(lái)給出提示信息,但是在android中的默認(rèn)toast的顏值和樣式完全一樣,這樣用戶(hù)就只能夠通過(guò)toast中的具體內(nèi)容來(lái)區(qū)分toast的相關(guān)信息了。但是由于toast提示一定時(shí)間后就會(huì)消失了,此時(shí)用戶(hù)在線(xiàn)觀察時(shí)就無(wú)法繼續(xù)對(duì)該信息進(jìn)行觀察,這樣就容易錯(cuò)過(guò)一些重要信息。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的toast顯示方法及裝置。
依據(jù)本發(fā)明的一個(gè)方面,提供一種toast顯示方法,包括:獲取并分析當(dāng)前待顯示toast信息的內(nèi)容;根據(jù)所述toast信息的內(nèi)容,確定當(dāng)前待顯示toast信息的重要性級(jí)別;針對(duì)當(dāng)前待顯示toast信息的重要性級(jí)別,調(diào)用該重要性級(jí)別對(duì)應(yīng)的展示函數(shù),從而顯示toast信息,其中,預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同。
優(yōu)選的,所述根據(jù)所述toast信息的內(nèi)容,確定當(dāng)前待顯示toast信息的重要性級(jí)別,包括:根據(jù)所述toast信息,解析出所述toast信息的內(nèi)容為一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容;根據(jù)一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容,確定toast信息對(duì)應(yīng)的重要性級(jí)別;其中,設(shè)置一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容和失敗提示內(nèi)容所對(duì)應(yīng)的toast信息的重要性級(jí)別由低到高。
優(yōu)選的,所述預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù)包括:基于toast類(lèi),分別為不同重要性級(jí)別的toast信息設(shè)置展示函數(shù),其中,展示函數(shù)中包括表示toast信息的重要性級(jí)別參數(shù)、系統(tǒng)上下文參數(shù)、顯示內(nèi)容文本參數(shù)、顯示時(shí)間長(zhǎng)度參數(shù),和/或,是否展示圖標(biāo)信息參數(shù)。
優(yōu)選的,還包括:在顯示toast信息之前,根據(jù)所述是否展示圖標(biāo)信息參數(shù),判斷是否需要展示圖標(biāo)信息;如果需要,通過(guò)預(yù)先設(shè)置的展示圖標(biāo)接口調(diào)用圖標(biāo)文件,從而在顯示toast信息時(shí),一并對(duì)圖標(biāo)信息進(jìn)行展示。
優(yōu)選的,通過(guò)以下方式,使得所述不同重要性級(jí)別的toast信息展示效果不同:針對(duì)不同重要性級(jí)別的toast信息,采用不同的背景顏色和/或富文本信息進(jìn)行區(qū)別性展示。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種toast顯示裝置,包括:內(nèi)容獲取單元,用于獲取并分析當(dāng)前待顯示toast信息的內(nèi)容;級(jí)別確定單元,用于根據(jù)所述toast信息的內(nèi)容,確定當(dāng)前待顯示toast信息的重要性級(jí)別;預(yù)先設(shè)置單元,用于預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同;顯示單元,用于針對(duì)當(dāng)前待顯示toast信息的重要性級(jí)別,調(diào)用該重要性級(jí)別對(duì)應(yīng)的展示函數(shù),從而顯示toast信息。
優(yōu)選的,所述級(jí)別確定單元具體用于:根據(jù)所述toast信息,解析出所述toast信息的內(nèi)容為一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容;根據(jù)一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容,確定toast信息對(duì)應(yīng)的重要性級(jí)別;其中,設(shè)置一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容和失敗提示內(nèi)容所對(duì)應(yīng)的toast信息的重要性級(jí)別由低到高。
優(yōu)選的,所述預(yù)先設(shè)置單元具體用于:基于toast類(lèi),分別為不同重要性級(jí)別的toast信息設(shè)置展示函數(shù),其中,展示函數(shù)中包括表示toast信息的重要性級(jí)別參數(shù)、系統(tǒng)上下文參數(shù)、顯示內(nèi)容文本參數(shù)、顯示時(shí)間長(zhǎng)度參數(shù),和/或,是否展示圖標(biāo)信息參數(shù)。
優(yōu)選的,還包括:圖標(biāo)顯示控制單元,用于在顯示toast信息之前,根據(jù)所述是否展示圖標(biāo)信息參數(shù),判斷是否需要展示圖標(biāo)信息;如果需要,通過(guò)預(yù)先設(shè)置的展示圖標(biāo)接口調(diào)用圖標(biāo)文件,從而在顯示toast信息時(shí),一并對(duì)圖標(biāo)信息進(jìn)行展示。
優(yōu)選的,所述顯示單元具體用于,針對(duì)不同重要性級(jí)別的toast信息,采用不同的背景顏色和/或富文本信息進(jìn)行區(qū)別性展示,使得所述不同重要性級(jí)別的toast信息展示效果不同。
可見(jiàn),本發(fā)明提供的toast顯示方法中,將toast信息進(jìn)行重要性級(jí)別劃分(例如info、normal、warning、success、error),這樣就能夠針對(duì)不同級(jí)別的toast調(diào)用不同級(jí)別的展示函數(shù)用于展示相關(guān)toast信息了。不同級(jí)別的toast的展示效果是不一樣的,這樣能夠方便區(qū)分不同重要性的信息。
在一個(gè)優(yōu)選方式中,針對(duì)toast信息的不同級(jí)別使用了不同的顏色作為背景,這樣能方便用戶(hù)更加醒目的定位toast信息。
在一個(gè)優(yōu)選方式中,本發(fā)明在構(gòu)建的展示函數(shù)中增加了一個(gè)是否展示圖標(biāo)的接口,這樣在展示toast信息時(shí)能夠選擇性的展示或者不展示圖標(biāo)信息。由此極大的豐富了toast的展示內(nèi)容的豐富性,比系統(tǒng)toast具有更豐富的展示效果。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例提供的toast顯示方法流程圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例提供的toast實(shí)現(xiàn)方法流程圖;
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例提供的toast顯示裝置結(jié)構(gòu)示意圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例提供的toast實(shí)現(xiàn)裝置結(jié)構(gòu)示意圖;
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明針對(duì)原生toast提示不友好的問(wèn)題進(jìn)行了改進(jìn),針對(duì)toast信息的級(jí)別進(jìn)行了劃分,并對(duì)不同重要性級(jí)別的toast信息進(jìn)行區(qū)別展示,例如使用不同的顏色作為背景,這樣能夠?qū)Σ煌燃?jí)的消息使用不同的方式來(lái)進(jìn)行展示,也方便更加醒目的定位toast信息。為了提升toast功能,原生的toast僅僅支持文本數(shù)據(jù)的展示,本發(fā)明實(shí)現(xiàn)的toast顯示方法的一種優(yōu)選方式中,相比系統(tǒng)功能的toast更為強(qiáng)大的是支持富文本,也就是文字圖片等信息的展示。
參見(jiàn)圖1,為本發(fā)明實(shí)施例提供的一種toast顯示方法,該方法包括步驟s101-s103。下面對(duì)各個(gè)步驟進(jìn)行詳細(xì)介紹。
s101:獲取并分析當(dāng)前待顯示toast信息的內(nèi)容。
首先介紹系統(tǒng)原生的toast的調(diào)用情況如下:
toast.maketext(getapplicationcontext(),"原生toast",toast.length_short).show();
該函數(shù)的解釋如下:
toast是android系統(tǒng)提供的一個(gè)專(zhuān)門(mén)用來(lái)顯示toast的工具類(lèi),該工具類(lèi)主要是用于展示toast使用。maketext表示創(chuàng)建一個(gè)toast需要顯示的text(文本元素),getapplicationcontext()表示的是系統(tǒng)的上下文,創(chuàng)建文本元素(maketext)必要的一個(gè)參數(shù),"原生toast"表示需要展示的具體文本信息內(nèi)容。toast.length_short表示顯示的時(shí)間長(zhǎng)度,toast.length_short是一個(gè)常量此處表示的是2秒鐘。最后觸發(fā)show()這個(gè)函數(shù),用來(lái)將toast的內(nèi)容展示在屏幕上。
可見(jiàn),步驟s101中“獲取并分析當(dāng)前待顯示toast信息的內(nèi)容”,即是對(duì)上述調(diào)用函數(shù)進(jìn)行解析并得到其中的"原生toast"(表示需要展示的具體文本信息內(nèi)容),從而確定toast信息的內(nèi)容。
s102:根據(jù)toast信息的內(nèi)容,確定當(dāng)前待顯示toast信息的重要性級(jí)別。
經(jīng)過(guò)分析發(fā)現(xiàn),toast信息的內(nèi)容主要包括五大類(lèi),分別是一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容;因此,本發(fā)明中,可根據(jù)一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容,確定toast信息對(duì)應(yīng)的重要性級(jí)別;其中,設(shè)置一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容和失敗提示內(nèi)容所對(duì)應(yīng)的toast信息的重要性級(jí)別由低到高。
對(duì)于上述五類(lèi)內(nèi)容,本發(fā)明表示如下:
info:一般顯示的最低級(jí)的內(nèi)容,也就是可有可無(wú)的內(nèi)容。
normal:常見(jiàn)的日志內(nèi)容,最常用的一種類(lèi)型。
warning:顯示警告內(nèi)容,通常是需要引起關(guān)注,但是有不至于導(dǎo)致系統(tǒng)掛掉的內(nèi)容。
success:表示成功信息輸出。
error:表示錯(cuò)誤信息輸出。
為了針對(duì)不同的重要性等級(jí)對(duì)toast信息進(jìn)行劃分,本發(fā)明例如采取如下的等級(jí)關(guān)系:
info<normal<warning<success<error
根據(jù)不同的等級(jí)關(guān)系,后續(xù)會(huì)采用不同的背景顏色來(lái)進(jìn)行區(qū)分,以便達(dá)到不同的警示效果的目的。
s103:針對(duì)當(dāng)前待顯示toast信息的重要性級(jí)別,調(diào)用該重要性級(jí)別對(duì)應(yīng)的展示函數(shù),從而顯示toast信息,其中,預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同。
具體的,預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù)的過(guò)程包括:基于toast類(lèi),分別為不同重要性級(jí)別的toast信息設(shè)置展示函數(shù),其中,展示函數(shù)中包括表示toast信息的重要性級(jí)別參數(shù)、系統(tǒng)上下文參數(shù)、顯示內(nèi)容文本參數(shù)、顯示時(shí)間長(zhǎng)度參數(shù),和/或,是否展示圖標(biāo)信息參數(shù)。
在具體實(shí)現(xiàn)中,可通過(guò)下述方式,使得不同重要性級(jí)別的toast信息展示效果不同:針對(duì)不同重要性級(jí)別的toast信息,采用不同的背景顏色和/或富文本信息進(jìn)行區(qū)別性展示。
進(jìn)一步,可根據(jù)“是否展示圖標(biāo)信息參數(shù)”,還執(zhí)行如下步驟:在顯示toast信息之前,根據(jù)是否展示圖標(biāo)信息參數(shù),判斷是否需要展示圖標(biāo)信息;如果需要,通過(guò)預(yù)先設(shè)置的展示圖標(biāo)接口調(diào)用圖標(biāo)文件,從而在顯示toast信息時(shí),一并對(duì)圖標(biāo)信息進(jìn)行展示。
例如,以上述info、normal、warning、success、error五個(gè)類(lèi)型的toast信息,分別構(gòu)建的toast展示函數(shù)如下:
mytoast.info(getapplicationcontext(),"infotoast.",toast.length_short,true).show();
mytoast.normal(getapplicationcontext(),"normaltoast.",toast.length_short,true).show();
mytoast.warning(getapplicationcontext(),"warningtoast.",toast.length_short,true).show();
mytoast.success(getapplicationcontext(),"successtoast.",toast.length_short,true).show();
mytoast.error(getapplicationcontext(),"errortoast.",toast.length_short,true).show();
由于針對(duì)不同級(jí)別的toast展示函數(shù)的分類(lèi)大體相同,接下來(lái)以info類(lèi)型的toast展示函數(shù)來(lái)舉例說(shuō)明該函數(shù)的參數(shù)的含義(其他函數(shù)于此函數(shù)的設(shè)計(jì)類(lèi)似):
mytoast.info(getapplicationcontext(),"infotoast.",toast.length_short,true).show();
這個(gè)函數(shù)中,mytoast表示本發(fā)明構(gòu)建的toast類(lèi),其中info表示的是info級(jí)別的toast級(jí)別輸出信息。不同級(jí)別的輸出信息使用的是不同級(jí)別的輸出函數(shù)。getapplicationcontext()表示的是系統(tǒng)的上下文,構(gòu)建界面元素必要的一個(gè)參數(shù),"infotoast."表示需要展示的具體文本信息內(nèi)容。toast.length_short表示顯示的時(shí)間長(zhǎng)度,toast.length_short是一個(gè)常量(例如此處表示的是2秒鐘)。true表示是否需要展示圖標(biāo)文件,true表示需要展示,false表示不需要展示圖標(biāo)。最后觸發(fā)show()這個(gè)函數(shù),用來(lái)將info級(jí)別的toast的內(nèi)容展示在屏幕上。
其他級(jí)別的展示函數(shù)的參數(shù)含義于此相同,此處不再對(duì)其他函數(shù)中的參數(shù)的含義進(jìn)一步贅述。
可見(jiàn),本發(fā)明提供的toast顯示方法中,將toast信息進(jìn)行重要性級(jí)別劃分(例如info、normal、warning、success、error),這樣就能夠針對(duì)不同級(jí)別的toast調(diào)用不同級(jí)別的展示函數(shù)用于展示相關(guān)toast信息了。不同級(jí)別的toast的展示效果是不一樣的,這樣能夠方便區(qū)分不同重要性的信息。
在一個(gè)優(yōu)選方式中,針對(duì)toast信息的不同級(jí)別使用了不同的顏色作為背景,這樣能方便用戶(hù)更加醒目的定位toast信息。
在一個(gè)優(yōu)選方式中,本發(fā)明在構(gòu)建的展示函數(shù)(例如上述mytoast系列函數(shù))中增加了一個(gè)是否展示圖標(biāo)的接口,這樣在展示toast信息時(shí)能夠選擇性的展示或者不展示圖標(biāo)信息。由此極大的豐富了toast的展示內(nèi)容的豐富性,比系統(tǒng)toast具有更豐富的展示效果。
此外,本發(fā)明還提供一種toast的實(shí)現(xiàn)方法,從底層如何實(shí)現(xiàn)toast角度進(jìn)行描述。
參見(jiàn)圖2,為toast的實(shí)現(xiàn)方法的流程圖,包括:
s201:創(chuàng)建toast構(gòu)造函數(shù);
s202:根據(jù)預(yù)置的toast重要性級(jí)別,確定toast重要性級(jí)別對(duì)應(yīng)的展示函數(shù),通過(guò)展示函數(shù)調(diào)用toast構(gòu)造函數(shù),得到構(gòu)造函數(shù)中的toast信息;
其中,預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同。
在一個(gè)優(yōu)選方式中,創(chuàng)建toast構(gòu)造函數(shù)的過(guò)程包括:
步驟a:初始化toast構(gòu)造函數(shù),得到當(dāng)前toast對(duì)象;
步驟b:設(shè)置toast屬性;
步驟c:將toast屬性關(guān)聯(lián)到當(dāng)前toast對(duì)象,完成toast構(gòu)造函數(shù)的創(chuàng)建。
在一個(gè)優(yōu)選方式中,設(shè)置toast屬性主要是指導(dǎo)入布局文件以及設(shè)置文字顏色或內(nèi)容等。因此,設(shè)置toast屬性可進(jìn)一步包括:導(dǎo)入布局文件,以及,設(shè)置文字顏色和內(nèi)容等。
其中,導(dǎo)入布局文件的具體過(guò)程可以為:獲取系統(tǒng)的布局管理類(lèi);調(diào)用布局管理類(lèi)中的inflat方法加載布局文件到內(nèi)存中,其中,布局文件包括圖形控件和文本控件;通過(guò)視圖查找函數(shù),確定圖形控件和文本控件所對(duì)應(yīng)的toast圖標(biāo)和文本。
在一個(gè)優(yōu)選方式中,toast構(gòu)造函數(shù)中包含是否展示背景圖片參數(shù),通過(guò)該參數(shù)可確定是否需要進(jìn)行背景圖片展示??梢?jiàn),此時(shí)還包括步驟:通過(guò)是否展示背景圖片參數(shù)判斷是否需要進(jìn)行背景圖片展示,如果需要,調(diào)用背景設(shè)置函數(shù)設(shè)置toast的背景信息。
下面以一個(gè)具體例子對(duì)toast的實(shí)現(xiàn)方法進(jìn)行示例性說(shuō)明。
由于mytoast系列展示函數(shù)的實(shí)現(xiàn)流程是大體類(lèi)似的,所以本發(fā)明具體針對(duì)info展示函數(shù)來(lái)進(jìn)行詳細(xì)的描述,其他函數(shù)的實(shí)現(xiàn)手段與info實(shí)現(xiàn)的手段類(lèi)似。
首先介紹info展示函數(shù)的內(nèi)部實(shí)現(xiàn)邏輯如下:
通過(guò)上述函數(shù)可以發(fā)現(xiàn),info級(jí)別toast展示函數(shù)的真正實(shí)現(xiàn)是調(diào)用一個(gè)構(gòu)造函數(shù)(例如custom函數(shù))來(lái)構(gòu)造需要的toast的,然后將構(gòu)造好的toast進(jìn)行返回。
接下來(lái)重點(diǎn)描述自定義custom是如何實(shí)現(xiàn)的,描述custom函數(shù)是如何實(shí)現(xiàn)之前,先描述custom函數(shù)的定義如下:
publicstatictoastcustom(contexcontext,stringmessage,drawableicon,inttextcolor,intbgcolor,intduration,booleanwithicon);
其中:
context:表示上下文對(duì)象,構(gòu)建界面元素時(shí)需要使用到的對(duì)象。
message:表示info需要展示的具體的內(nèi)容信息。
icon:表示展示需要顯示的圖片信息。
textcolor:表示info中文字的顏色信息。
bgcolor:表示的是info中的背景顏色信息。
withicon:是否展示圖標(biāo)信息。
publicstatictoast:表示custom函數(shù)返回的是一個(gè)toast類(lèi)。
通過(guò)上述描述可以了解custom函數(shù)的定義,接下來(lái)就來(lái)詳細(xì)描述一下custom函數(shù)內(nèi)部的具體實(shí)現(xiàn)邏輯。
與現(xiàn)有通過(guò)custom函數(shù)實(shí)現(xiàn)toast展示組件不同的是,現(xiàn)有的方式只能簡(jiǎn)單使用而不能實(shí)現(xiàn)定制化,而本發(fā)明方案使用的是經(jīng)過(guò)定制化并且分級(jí)別的toast。
1、通過(guò)toast的構(gòu)造函數(shù)(例如finaltoastcurrenttoast=newtoast(context))來(lái)構(gòu)建需要最終生成的currenttoast對(duì)象。
2、由于本發(fā)明toast的ui是自定義的,所以需要通過(guò)java代碼導(dǎo)入布局文件信息并將布局文件和java代碼建立引用關(guān)系。
2.1、通過(guò)contex獲得系統(tǒng)的布局器管理類(lèi),具體是調(diào)用context.getsystemservice(context.layout_inflater_service))這個(gè)系統(tǒng)函數(shù)來(lái)獲取到布局管理類(lèi)layoutinflater。
2.2、調(diào)用布局管理類(lèi)layoutinflater中的inflat方法來(lái)加載布局文件到內(nèi)存中,具體是通過(guò)inflate(r.layout.toast_layout),其中r.layout.toast_layout是自定義好的toast的布局展示文件。該文件中僅僅包含一個(gè)imageview(圖形控件)和一個(gè)textview(文本控件)。
2.3、通過(guò)findviewbyid函數(shù)找到r.layout.toast_layout其中對(duì)應(yīng)的imageview和對(duì)應(yīng)的textview控件,具體是調(diào)用finalimageviewtoasticon=(imageview)toastlayout.findviewbyid(r.id.toast_icon)和finaltextviewtoasttextview=(textview)toastlayout.findviewbyid(r.id.toast_text)來(lái)獲取的。通過(guò)findviewbyid,就獲取到了r.layout.toast_layout中的imageview和textview所對(duì)應(yīng)的引用toasticon和toasttextview。
3、判斷是否需要展示圖片,具體是通過(guò)if語(yǔ)句來(lái)進(jìn)行判斷的。if(withicon)如果需要展示圖片,就需要加載背景圖片。如果不需要展示圖片,就進(jìn)入下一步操作。
3.1、針對(duì)需要展示背景信息的情況:需要調(diào)用setbackground函數(shù)來(lái)設(shè)置toast對(duì)應(yīng)的背景信息。具體的實(shí)現(xiàn)是setbackground(getdrawable(r.color.bgcolor)),這樣我們就將預(yù)設(shè)的bgcolor設(shè)置上去了。
3.2、針對(duì)不需要展示背景信息的情況:直接進(jìn)入下一步的操作,此處就不用調(diào)用setbackground函數(shù)來(lái)設(shè)置背景相關(guān)信息了。
4、設(shè)置文字顏色和文字內(nèi)容。通過(guò)步驟2中獲取到的toasttextview調(diào)用toasttextview中的settextcolor(textcolor);方法來(lái)設(shè)置toasttextview對(duì)應(yīng)的文字顏色。通過(guò)調(diào)用toasttextview中的settext(message);來(lái)設(shè)置toasttextview對(duì)應(yīng)的文字信息。
5、接下來(lái)將構(gòu)件好的相關(guān)toast屬性設(shè)置到第一步中創(chuàng)建的currenttoast對(duì)象中。具體步驟是調(diào)用currenttoast中的setview(toastlayout)將構(gòu)建好的自定義toast的視圖toastlayout設(shè)置到currenttoast中。通過(guò)調(diào)用currenttoast調(diào)用其中的setduration(duration)來(lái)設(shè)置toastlayout的展示時(shí)間。
6、最后將構(gòu)建好的currenttoast視圖返回出去,這樣就完成了整個(gè)自定義toast的構(gòu)建過(guò)程并返回了。
其他級(jí)別的toast函數(shù)與此類(lèi)似,僅僅不同的地方就是背景顏色和文字顏色和突變等細(xì)微的差異,實(shí)現(xiàn)流程大體相同,此處就不再贅述。
與上述圖1方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供一種toast顯示裝置,參見(jiàn)圖3,該toast顯示裝置包括:
內(nèi)容獲取單元301,用于獲取并分析當(dāng)前待顯示toast信息的內(nèi)容;
級(jí)別確定單元302,用于根據(jù)所述toast信息的內(nèi)容,確定當(dāng)前待顯示toast信息的重要性級(jí)別;
預(yù)先設(shè)置單元303,用于預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同;
顯示控制單元304,用于針對(duì)當(dāng)前待顯示toast信息的重要性級(jí)別,調(diào)用該重要性級(jí)別對(duì)應(yīng)的展示函數(shù),從而顯示toast信息。
在一種優(yōu)選方式中,所述級(jí)別確定單元302具體用于:根據(jù)所述toast信息,解析出所述toast信息的內(nèi)容為一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容;根據(jù)一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容或失敗提示內(nèi)容,確定toast信息對(duì)應(yīng)的重要性級(jí)別;其中,設(shè)置一般顯示內(nèi)容、日志內(nèi)容、警告內(nèi)容、成功提示內(nèi)容和失敗提示內(nèi)容所對(duì)應(yīng)的toast信息的重要性級(jí)別由低到高。
在一種優(yōu)選方式中,所述預(yù)先設(shè)置單元303具體用于:基于toast類(lèi),分別為不同重要性級(jí)別的toast信息設(shè)置展示函數(shù),其中,展示函數(shù)中包括表示toast信息的重要性級(jí)別參數(shù)、系統(tǒng)上下文參數(shù)、顯示內(nèi)容文本參數(shù)、顯示時(shí)間長(zhǎng)度參數(shù),和/或,是否展示圖標(biāo)信息參數(shù)。
在一種優(yōu)選方式中,還包括:圖標(biāo)顯示控制單元305,用于在顯示toast信息之前,根據(jù)所述是否展示圖標(biāo)信息參數(shù),判斷是否需要展示圖標(biāo)信息;如果需要,通過(guò)預(yù)先設(shè)置的展示圖標(biāo)接口調(diào)用圖標(biāo)文件,從而在顯示toast信息時(shí),一并對(duì)圖標(biāo)信息進(jìn)行展示。
在一種優(yōu)選方式中,所述顯示控制單元304具體用于,針對(duì)不同重要性級(jí)別的toast信息,采用不同的背景顏色和/或富文本信息進(jìn)行區(qū)別性展示,使得所述不同重要性級(jí)別的toast信息展示效果不同。
與上述圖2方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供一種toast實(shí)現(xiàn)裝置,參見(jiàn)圖4,該toast實(shí)現(xiàn)裝置包括:
toast構(gòu)造函數(shù)創(chuàng)建單元401,用于創(chuàng)建toast構(gòu)造函數(shù);
toast信息輸出單元402,用于根據(jù)預(yù)置的toast重要性級(jí)別,確定toast重要性級(jí)別對(duì)應(yīng)的展示函數(shù),通過(guò)所述展示函數(shù)調(diào)用toast構(gòu)造函數(shù),得到構(gòu)造函數(shù)中的toast信息;
其中,預(yù)先為不同重要性級(jí)別的toast信息設(shè)置不同的展示函數(shù),使得不同重要性級(jí)別的toast信息展示效果不同。
在一個(gè)優(yōu)選方式中,toast構(gòu)造函數(shù)創(chuàng)建單元401具體包括:
toast對(duì)象生成子單元4011,用于初始化toast構(gòu)造函數(shù),得到當(dāng)前toast對(duì)象;
toast屬性設(shè)置子單元4012:用于設(shè)置toast屬性;
關(guān)聯(lián)子單元4013,用于將toast屬性關(guān)聯(lián)到當(dāng)前toast對(duì)象,完成toast構(gòu)造函數(shù)的創(chuàng)建。
在一個(gè)優(yōu)選方式中,設(shè)置toast屬性主要是指導(dǎo)入布局文件以及設(shè)置文字顏色或內(nèi)容等。因此,toast屬性設(shè)置子單元4012可具體用于:導(dǎo)入布局文件,以及,設(shè)置文字顏色和內(nèi)容等。
其中,toast屬性設(shè)置子單元4012可通過(guò)以下方式導(dǎo)入布局文件:獲取系統(tǒng)的布局管理類(lèi);調(diào)用布局管理類(lèi)中的inflat方法加載布局文件到內(nèi)存中,其中,布局文件包括圖形控件和文本控件;通過(guò)視圖查找函數(shù),確定圖形控件和文本控件所對(duì)應(yīng)的toast圖標(biāo)和文本。
在一個(gè)優(yōu)選方式中,toast構(gòu)造函數(shù)中包含是否展示背景圖片參數(shù),通過(guò)該參數(shù)可確定是否需要進(jìn)行背景圖片展示??梢?jiàn),此時(shí)裝置還可包括:背景圖片展示控制單元403,用于通過(guò)是否展示背景圖片參數(shù)判斷是否需要進(jìn)行背景圖片展示,如果需要,調(diào)用背景設(shè)置函數(shù)設(shè)置toast的背景信息。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(dsp)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用戶(hù)變身控制的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。