本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種截屏方法及終端。
背景技術(shù):
目前,隨著移動互聯(lián)網(wǎng)的發(fā)展,以智能手機為代表的智能終端已經(jīng)普及。人們在使用手機過程中可能會遇到自己喜歡的新聞、文章等內(nèi)容,需要臨時截取整個頁面的所有內(nèi)容,以便分享給朋友,或者自己收藏以便后續(xù)查看等需求。
在目前的技術(shù)中,終端用戶可以使用一個觸發(fā)方式,截取當(dāng)前界面顯示的內(nèi)容。當(dāng)內(nèi)容較多,無法全部顯示在一個頁面上,想要截取所有內(nèi)容,需要將新的內(nèi)容手動滾動到當(dāng)前界面顯示區(qū)域,再重復(fù)觸發(fā)截屏操作,以此不斷重復(fù),直到截取完畢所有內(nèi)容。這種現(xiàn)狀要求用戶不斷重復(fù)的操作截屏,在操作過程中,需要進行的操作步驟較多,不夠方便快捷;并且保存的圖片數(shù)量較多,總共花費的時間長,體驗比較差,不利于圖片的分享及查看。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種截屏方法及終端,能夠方便快捷地完成截屏,改善用戶的使用體驗。
一方面,本發(fā)明實施例提供了一種截屏方法,該方法包括,
當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中;
判斷是否接收到截屏結(jié)束指令;
若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同;
若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
另一方面,本發(fā)明實施例提供了一種終端,該終端包括,
緩存單元,用于當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中;
第一判斷單元,用于判斷是否接收到截屏結(jié)束指令;
第二判斷單元,用于若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同;
合成單元,用于若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
本發(fā)明實施例能夠簡單方便地完成截屏,改善用戶的使用體驗。尤其是用戶只需要觸發(fā)截屏方式,就能夠自動進行滾動截屏,其中,當(dāng)用戶需要結(jié)束截屏?xí)r,觸發(fā)結(jié)束命令即可得到用戶需要的完整內(nèi)容。
附圖說明
為了更清楚地說明本發(fā)明實施例技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種截屏方法的示意流程圖;
圖2是本發(fā)明另一實施例提供的一種截屏方法的示意流程圖;
圖3是本發(fā)明另一實施例中的步驟s201的子步驟的示意流程圖;
圖3a、3b以及3c是本發(fā)明另一實施例中屏幕的結(jié)構(gòu)示意圖;
圖4是本發(fā)明另一實施例中的步驟s204的子步驟的示意流程圖;
圖5是本發(fā)明實施例提供的一種終端的示意性框圖;
圖6是本發(fā)明另一實施例提供的一種終端的示意性框圖;
圖7是本發(fā)明另一實施例中的緩存單元201的子單元的示意性框圖;
圖8是本發(fā)明另一實施例中的合成單元204的子單元的示意性框圖;
圖9是本發(fā)明另一實施例提供的一種終端的示意性框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)當(dāng)理解,當(dāng)在本說明書和所附權(quán)利要求書中使用時,術(shù)語“包括”和“包含”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個或多個其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應(yīng)當(dāng)理解,在此本發(fā)明說明書中所使用的術(shù)語僅僅是出于描述特定實施例的目的而并不意在限制本發(fā)明。如在本發(fā)明說明書和所附權(quán)利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數(shù)形式的“一”、“一個”及“該”意在包括復(fù)數(shù)形式。還應(yīng)當(dāng)進一步理解,在本發(fā)明說明書和所附權(quán)利要求書中使用的術(shù)語“和/或”是指相關(guān)聯(lián)列出的項中的一個或多個的任何組合以及所有可能組合,并且包括這些組合。
參見圖1,其是本發(fā)明實施例所提供的一種截屏方法的示意流程圖,如圖所示的方法可包括以下步驟,
步驟s101,當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中。
其中,當(dāng)用戶觸發(fā)啟動截屏后,終端會接收到相應(yīng)的截屏操作指令,從而根據(jù)預(yù)設(shè)好的第一預(yù)設(shè)規(guī)則滾動屏幕,然后在屏幕滾動的過程中自動將截屏得到的所有圖片緩存到一個緩存集合中,方便進行后續(xù)的處理。
步驟s102,判斷是否接收到截屏結(jié)束指令。
其中,接收到截屏操作指令之后,在滾動進行截屏的過程中,如果用戶已獲取所需要的內(nèi)容,則可以停止截屏,避免截取多余的內(nèi)容,減少終端內(nèi)存的損耗。那么此時,需要判斷是否有接收到截屏結(jié)束指令,若有接收到截屏結(jié)束指令,則取緩存集合內(nèi)已存儲的圖片進行相應(yīng)的處理。
步驟s103,若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
其中,若沒有接收到截屏結(jié)束指令,則要確認(rèn)截屏是否結(jié)束,此時就需要對緩存集合中的圖片進行對比分析,又因為緩存集合中的圖片是根據(jù)時間順序存儲在緩存集合中的,所以此時只需要判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片不相同的時候,則表明此時還未截屏到最后,故需要繼續(xù)根據(jù)所述第一預(yù)設(shè)規(guī)則進行截屏以得到圖片并緩存到緩存集合中,從而保證最終截屏得到的圖片的內(nèi)容包括用戶需要的所有內(nèi)容。
步驟s104,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
通常,當(dāng)所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則可以說明已經(jīng)完成了對屏幕所能顯示的內(nèi)容的全部的截屏,此時,則可以根據(jù)第二預(yù)設(shè)規(guī)則將緩存集合中的所有圖片進行相應(yīng)的合成。因為緩存集合中的所有圖片均是按時間順序進行存儲的,所以在一定程度上需要根據(jù)預(yù)設(shè)規(guī)則中對所有圖片進行相應(yīng)的處理,從而得到最終截取的圖片。
總的來說,本發(fā)明實施例能夠簡單方便地完成截屏,改善用戶的使用體驗。尤其是用戶只需要觸發(fā)截屏方式,就能夠自動進行滾動截屏,其中,當(dāng)用戶需要結(jié)束截屏?xí)r,觸發(fā)結(jié)束命令即可得到用戶需要的完整內(nèi)容。
參見圖2,其是本發(fā)明另一實施例所提供的一種截屏方法的示意流程圖,如圖所示的方法可包括以下步驟,
步驟s201a,當(dāng)接收到截屏操作指令時,判斷當(dāng)前屏幕狀態(tài)是否為預(yù)設(shè)狀態(tài)。
其中,當(dāng)用戶觸發(fā)啟動截屏后,也就是接收到截屏操作指令時,應(yīng)該判斷當(dāng)前的屏幕狀態(tài)是否支持運行截屏,當(dāng)前的屏幕狀態(tài)即終端目前所處的環(huán)境。如果當(dāng)前的屏幕狀態(tài)不支持運行截屏,則表明無法進行相應(yīng)的截屏操作。而如果若當(dāng)前屏幕狀態(tài)為預(yù)設(shè)狀態(tài),即當(dāng)前的屏幕狀態(tài)支持運行截屏,那么則執(zhí)行步驟s201。
例如,若預(yù)設(shè)狀態(tài)為豎屏狀態(tài),同時當(dāng)前屏幕狀態(tài)為橫屏狀態(tài)時,則結(jié)束截屏;而當(dāng)前屏幕狀態(tài)為豎屏狀態(tài)時,則執(zhí)行步驟s201。一般情況,判斷屏幕狀態(tài)通常通過方向傳感器,比如陀螺儀,以獲取當(dāng)前的方向值,從而得到當(dāng)前屏幕狀態(tài)是橫屏狀態(tài)還是豎屏狀態(tài)。
步驟s201,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中。
其中,當(dāng)觸發(fā)截屏之后,則可以滾動屏幕,并根據(jù)第一預(yù)設(shè)規(guī)則截取相應(yīng)的圖片。比如,當(dāng)滾動一次后,則可以截取當(dāng)前的屏幕內(nèi)容從而得到相應(yīng)的圖片,并將相應(yīng)的圖片按照時間順序依次緩存到一個緩存集合中。
另外,作為優(yōu)選的,參見圖3,其為本發(fā)明另一實施例中步驟s201的子步驟的示意流程圖,所述步驟s201具體可以包括以下步驟,
步驟s301,在當(dāng)前屏幕上設(shè)置一第一位置以及一第二位置。
其中,可以在屏幕上設(shè)置一個第一位置,并在屏幕的預(yù)設(shè)的滾動方向上再設(shè)置一個第二位置,同時第二位置不同于第一位置。
例如,如圖3a、圖3b和圖3c所示,在屏幕上建立一個坐標(biāo)系,其中,x軸設(shè)置在屏幕頂端,y軸設(shè)置在屏幕左側(cè),且x軸和y軸相交的原點設(shè)置在屏幕的左上方,并且第一位置為圖3a、圖3b和圖3c中的start-y,第二位置為圖3a、圖3b和圖3c中的end-y。
作為進一步優(yōu)選的,所述第一位置的高度與所述屏幕的高度的比值大小的范圍為0.6-0.9,所述第二位置的高度與所述屏幕的高度的比值大小小于0.6。
其中,第一位置的高度為start-y到x軸的直線距離,第二位置的高度為end-y到x軸的直線距離,而屏幕的高度則為y軸在屏幕上的高度。一般情況下,第一位置的高度根據(jù)屏幕實際分辨率進行設(shè)定,比如,第一位置的高度與所述屏幕的高度的比值大小的范圍為06~0.9,并且可以在這個范圍內(nèi)根據(jù)實際情況進行調(diào)整;此時第二位置的高度與所述屏幕的高度的比值大小小于0.6,更進一步的,第一位置的高度與所述屏幕的高度的比值大小還可以是0.7或者0.8,第二位置的高度與所述屏幕的高度的比值大小的范圍還可以為0.25~0.35,并且可以在這個范圍內(nèi)根據(jù)實際情況進行調(diào)整;當(dāng)然,第一位置的高度與所述屏幕的高度的比值大小以及第二位置的高度與所述屏幕的高度的比值大小根據(jù)實際情況也可以是其他可行的大小。
步驟s302,截取所述當(dāng)前屏幕的內(nèi)容作為第一圖片并緩存到緩存集合中。
其中,可以截取當(dāng)前屏幕的內(nèi)容作為第一圖片,以使得所需要的內(nèi)容根據(jù)時間順序依次被截取,同時緩存到緩存集合中。
步驟s303,滾動屏幕并判斷位于所述第一位置的內(nèi)容是否能滾動到所述第二位置。
例如,如圖3a所示,屏幕朝著箭頭方向向上滾動,再如圖3b以及3c所示,第一位置start-y上設(shè)有一個笑臉圖形,此時可以判斷位于第一位置start-y的笑臉圖形是否能向上滾動到第二位置end-y。
步驟s304,若所述第一位置的內(nèi)容能滾動到所述第二位置,截取滾動后的屏幕的內(nèi)容為一第二圖片并依次緩存到緩存集合中。
例如,根據(jù)上一步驟的例子可知,若位于第一位置start-y的笑臉圖形能夠滾動到第二位置end-y,則表明已經(jīng)完成了一次滾動,那么則可以截取滾動后的屏幕的內(nèi)容作為一第二圖片,并緩存到緩存集合中。
步驟s305,若所述第一位置的內(nèi)容不能滾動到所述第二位置,且所述第一位置的內(nèi)容滾動后所處的位置位于所述第一位置和所述第二位置之間,將所述第一位置的內(nèi)容滾動后所處的位置作為新的第二位置,并截取滾動后的屏幕的內(nèi)容為另一第二圖片以緩存到緩存集合中。
其中,根據(jù)上一步驟的例子可知,若所述第一位置sart-y的笑臉圖形不能夠滾動到所述第二位置end-y,且所述第一位置sart-y的笑臉圖形滾動后所處的位置位于所述第一位置sart-y和所述第二位置end-y之間,那么此時則需要將所述第一位置sart-y的笑臉圖形滾動后所處的位置作為新的第二位置end-y,同時可以以當(dāng)前的第一位置sart-y和新的第二位置end-y為準(zhǔn)以截取滾動后的屏幕的內(nèi)容為另一個第二圖片,并緩存到緩存集合中,這里的另一第二圖片所對應(yīng)的第二位置則為新的第二位置。
步驟s202,判斷是否接收到截屏結(jié)束指令。
如圖3a、3b以及3c所示,用戶可以根據(jù)需要按返回鍵以結(jié)束截屏,此時可以通過判斷是否接收到截屏結(jié)束指令來控制是否結(jié)束截屏。若用戶需要結(jié)束截屏,此時可以按返回鍵,使得終端接收到截屏結(jié)束指令,從而結(jié)束截屏,并將之前緩存到緩存集合中的圖片進行下一步處理。
步驟s203,若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
其中,若沒有接收到截屏結(jié)束指令,則表明可以繼續(xù)滾動截屏,此時需要判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片不相同,那么則表明還沒有滾動到底,屏幕能夠顯示的內(nèi)容并未完全獲取,此時還需要繼續(xù)滾動截屏,并再次進行判斷此時的緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
步驟s204,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
其中,例如,若緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則表明已經(jīng)緩存到底,此時可以根據(jù)一個預(yù)設(shè)的第二預(yù)設(shè)規(guī)則將緩存集合中的所有圖片進行合成以得到最終截取圖片。
作為進一步優(yōu)選的,參見圖4,其是本發(fā)明另一實施例中步驟s204的子步驟的示意流程圖,所述步驟s204具體可以包括以下步驟,
步驟s401,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,刪除最后一次緩存的圖片以得到一新的緩存集合。
一般情況下,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則表明已經(jīng)緩存到底,為了進行下一步的合成操作,此時則需要刪除最后一次緩存的圖片以得到一新的緩存集合。當(dāng)然,只要緩存集合中相同的兩個圖片即可,也就是說可以只刪除倒數(shù)第二次緩存的圖片。
這里的圖片可以是第一圖片,也可以是第二圖片,比如,當(dāng)緩存集合中倒數(shù)第二次緩存的圖片為第一圖片,最后一次緩存的圖片為跟第一圖片相同的圖片時,則新的緩存集合中只有第一圖片。當(dāng)緩存集合中的倒數(shù)第二次緩存的圖片為其中一第二圖片,最后一次緩存的圖片為跟所述其中一第二圖片相同的圖片,那么刪除一個所述其中一第二圖片,此時新的緩存集合中只有一個所述其中一第二圖片。
步驟s402,取所述新的緩存集合中的第一圖片,并剪切掉所述第一圖片中對應(yīng)的第一位置以下的內(nèi)容以得到第一剪切圖片。
其中,新的緩存集合中的所有圖片均有對應(yīng)的第一位置和第二位置。為了進行合成,可以剪切掉所述第一圖片中對應(yīng)的第一位置以下的內(nèi)容以得到第一剪切圖片。當(dāng)然,如果新的緩存集合中只有第一圖片時,則不需要對第一圖片進行合成處理,即可以取此圖片作為最終的截取圖片。
步驟s403,取所述新的緩存集合中除去最后一次緩存的第二圖片后剩余的第二圖片,并依次剪切掉每個剩余的第二圖片中對應(yīng)的第一位置以下的內(nèi)容以及對應(yīng)的第二位置以上的內(nèi)容,以得到多個依次排列的第二剪切圖片。
其中,為了合成的圖片中沒有重合的內(nèi)容,需要取所述新的緩存集合中除去最后一次緩存的第二圖片后剩余的第二圖片,并依次剪切掉每個剩余的第二圖片中對應(yīng)的第一位置以下的內(nèi)容以及對應(yīng)的第二位置以上的內(nèi)容,以得到多個依次排列的第二剪切圖片。另外,如果新的緩存集合中只有兩張圖片,那么則不需要進行此步驟而是直接進行下一步。
步驟s404,取所述新的緩存集合中的最后一次緩存的第二圖片,并剪切掉所述最后一次緩存的第二圖片中對應(yīng)的第二位置以上的內(nèi)容,以得到另一第二剪切圖片。
其中,可以取所述新的緩存集合中的最后一次緩存的第二圖片,并剪切掉所述最后一次緩存的第二圖片中對應(yīng)的第二位置以上的內(nèi)容。若最后一次緩存的第二圖片所對應(yīng)的第二位置為更新后的第二位置,那么此時應(yīng)以更新后的第二位置為準(zhǔn),以得到另一第二剪切圖片。
步驟s405,將所述第一剪切圖片、所述多個依次排列的第二剪切圖片以及所述另一第二剪切圖片按從上到下的順序依次排列合并成最終截取圖片。
其中,可以將所述第一剪切圖片、所述多個依次排列的第二剪切圖片以及所述另一第二剪切圖片按從上到下的順序依次排列合成,從而得到最終截取圖片。當(dāng)然,如果新的緩存集合中只有兩張圖片,即一張第一圖片和一張第二圖片,那么則可以剪切掉第一圖片對應(yīng)的第一位置以下的內(nèi)容,并剪切掉第二圖片對應(yīng)的第二位置以上的內(nèi)容,以得到第一剪切圖片和第二剪切圖片,并將第一剪切圖片和第二剪切圖片從上至下一次排布合成以得到最終截取圖片。
參見圖5,是本發(fā)明實施例提供的一種終端的示意性框圖,如圖所示的終端100可以包括,
緩存單元101,用于當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中。
其中,當(dāng)用戶觸發(fā)啟動截屏后,終端會接收到相應(yīng)的截屏操作指令,從而根據(jù)預(yù)設(shè)好的第一預(yù)設(shè)規(guī)則滾動屏幕,然后在屏幕滾動的過程中自動將截屏得到的所有圖片緩存到一個緩存集合中,方便進行后續(xù)的處理。
第一判斷單元102,用于判斷是否接收到截屏結(jié)束指令。
其中,接收到截屏操作指令之后,在滾動進行截屏的過程中,如果用戶已獲取所需要的內(nèi)容,則可以停止截屏,避免截取多余的內(nèi)容,減少終端內(nèi)存的損耗。那么此時,需要判斷是否有接收到截屏結(jié)束指令,若有接收到截屏結(jié)束指令,則取緩存集合內(nèi)已存儲的圖片進行相應(yīng)的處理。
第二判斷單元103,用于若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
其中,若沒有接收到截屏結(jié)束指令,則要確認(rèn)截屏是否結(jié)束,此時就需要對緩存集合中的圖片進行對比分析,又因為緩存集合中的圖片是根據(jù)時間順序存儲在緩存集合中的,所以此時只需要判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片不相同的時候,則表明此時還未截屏到最后,故需要繼續(xù)根據(jù)所述第一預(yù)設(shè)規(guī)則進行截屏以得到圖片并緩存到緩存集合中,從而保證最終截屏得到的圖片的內(nèi)容包括用戶需要的所有內(nèi)容。
合成單元104,用于若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
通常,當(dāng)所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則可以說明已經(jīng)完成了對屏幕所能顯示的內(nèi)容的全部的截屏,此時,則可以根據(jù)第二預(yù)設(shè)規(guī)則將緩存集合中的所有圖片進行相應(yīng)的合成。因為緩存集合中的所有圖片均是按時間順序進行存儲的,所以在一定程度上需要根據(jù)預(yù)設(shè)規(guī)則中對所有圖片進行相應(yīng)的處理,從而得到最終截取的圖片。
總的來說,本發(fā)明實施例能夠簡單方便地完成截屏,改善用戶的使用體驗。尤其是用戶只需要觸發(fā)截屏方式,就能夠自動進行滾動截屏,其中,當(dāng)用戶需要結(jié)束截屏?xí)r,觸發(fā)結(jié)束命令即可得到用戶需要的完整內(nèi)容。
參見圖6,其是本發(fā)明另一實施例所提供的一種終端的示意性框圖,如圖所示的終端200可包括以下單元,
第三判斷單元201a,用于當(dāng)接收到截屏操作指令時,判斷當(dāng)前屏幕狀態(tài)是否為預(yù)設(shè)狀態(tài)。
其中,當(dāng)用戶觸發(fā)啟動截屏后,也就是接收到截屏操作指令時,應(yīng)該判斷當(dāng)前的屏幕狀態(tài)是否支持運行截屏,當(dāng)前的屏幕狀態(tài)即終端目前所處的環(huán)境。如果當(dāng)前的屏幕狀態(tài)不支持運行截屏,則表明無法進行相應(yīng)的截屏操作。而如果若當(dāng)前屏幕狀態(tài)為預(yù)設(shè)狀態(tài),即當(dāng)前的屏幕狀態(tài)支持運行截屏,那么則執(zhí)行緩存單元201。
例如,若預(yù)設(shè)狀態(tài)為豎屏狀態(tài),同時當(dāng)前屏幕狀態(tài)為橫屏狀態(tài)時,則結(jié)束截屏;而當(dāng)前屏幕狀態(tài)為豎屏狀態(tài)時,則執(zhí)行緩存單元201。一般情況,判斷屏幕狀態(tài)通常通過方向傳感器,比如陀螺儀,以獲取當(dāng)前的方向值,從而得到當(dāng)前屏幕狀態(tài)是橫屏狀態(tài)還是豎屏狀態(tài)。
緩存單元201,用于當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中。
其中,當(dāng)觸發(fā)截屏之后,則可以滾動屏幕,并根據(jù)第一預(yù)設(shè)規(guī)則截取相應(yīng)的圖片。比如,當(dāng)滾動一次后,則可以截取當(dāng)前的屏幕內(nèi)容從而得到相應(yīng)的圖片,并將相應(yīng)的圖片按照時間順序依次緩存到一個緩存集合中。
另外,作為優(yōu)選的,參見圖7,其為本發(fā)明另一實施例中緩存單元201的子單元的示意性框圖,所述緩存單元201具體可以包括以下單元,
設(shè)置單元301,用于在當(dāng)前屏幕上設(shè)置一第一位置以及一第二位置,其中所述第一位置不同于所述第二位置。
其中,可以在屏幕上設(shè)置一個第一位置,并在屏幕的預(yù)設(shè)的滾動方向上再設(shè)置一個第二位置,同時第二位置不同于第一位置。
例如,如圖3a、圖3b和圖3c所示,在屏幕上建立一個坐標(biāo)系,其中,x軸設(shè)置在屏幕頂端,y軸設(shè)置在屏幕左側(cè),且x軸和y軸相交的原點設(shè)置在屏幕的左上方,并且第一位置為圖3a、圖3b和圖3c中的start-y,第二位置為圖3a、圖3b和圖3c中的end-y。
作為進一步優(yōu)選的,所述第一位置的高度與所述屏幕的高度的比值大小的范圍為0.6-0.9,所述第二位置的高度與所述屏幕的高度的比值大小小于0.6。
其中,第一位置的高度為start-y到x軸的直線距離,第二位置的高度為end-y到x軸的直線距離,而屏幕的高度則為y軸在屏幕上的高度。一般情況下,第一位置的高度根據(jù)屏幕實際分辨率進行設(shè)定,比如,第一位置的高度與所述屏幕的高度的比值大小的范圍為0.6~0.9,并且可以在這個范圍內(nèi)根據(jù)實際情況進行調(diào)整;此時第二位置的高度與所述屏幕的高度的比值大小小于0.6,更進一步的,第一位置的高度與所述屏幕的高度的比值大小還可以是0.7或者0.8,第二位置的高度與所述屏幕的高度的比值大小的范圍還可以為0.25~0.35,并且可以在這個范圍內(nèi)根據(jù)實際情況進行調(diào)整;當(dāng)然,第一位置的高度與所述屏幕的高度的比值大小以及第二位置的高度與所述屏幕的高度的比值大小根據(jù)實際情況也可以是其他可行的大小。
第一截取單元302,用于截取所述當(dāng)前屏幕的內(nèi)容作為第一圖片并緩存到緩存集合中。
其中,可以截取當(dāng)前屏幕的內(nèi)容作為第一圖片,以使得所需要的內(nèi)容根據(jù)時間順序依次被截取,同時緩存到緩存集合中。
第四判斷單元303,用于滾動屏幕并判斷位于所述第一位置的內(nèi)容是否能滾動到所述第二位置。
例如,如圖3a所示,屏幕朝著箭頭方向向上滾動,再如圖3b以及3c所示,第一位置start-y上設(shè)有一個笑臉圖形,此時可以判斷位于第一位置start-y的笑臉圖形是否能向上滾動到第二位置end-y。
第二截取單元304,用于若所述第一位置的內(nèi)容滾動到所述第二位置,截取滾動后的屏幕的內(nèi)容為一第二圖片并依次緩存到緩存集合中。
例如,根據(jù)上一步驟的例子可知,若位于第一位置start-y的笑臉圖形能夠滾動到第二位置end-y,則表明已經(jīng)完成了一次滾動,那么則可以截取滾動后的屏幕的內(nèi)容作為一第二圖片,并緩存到緩存集合中。
第三截取單元305,用于若所述第一位置的內(nèi)容不能滾動到所述第二位置,且所述第一位置的內(nèi)容滾動后所處的位置位于所述第一位置和所述第二位置之間,將所述第一位置的內(nèi)容滾動后所處的位置作為新的第二位置,并截取滾動后的屏幕的內(nèi)容為另一第二圖片以緩存到緩存集合中。
其中,根據(jù)上一步驟的例子可知,若所述第一位置sart-y的笑臉圖形不能夠滾動到所述第二位置end-y,且所述第一位置sart-y的笑臉圖形滾動后所處的位置位于所述第一位置sart-y和所述第二位置end-y之間,那么此時則需要將所述第一位置sart-y的笑臉圖形滾動后所處的位置作為新的第二位置end-y,同時可以以當(dāng)前的第一位置sart-y和新的第二位置end-y為準(zhǔn)以截取滾動后的屏幕的內(nèi)容為另一個第二圖片,并緩存到緩存集合中,這里的另一第二圖片所對應(yīng)的第二位置則為新的第二位置。
第一判斷單元202,用于判斷是否接收到截屏結(jié)束指令。
如圖3a、3b以及3c所示,用戶可以根據(jù)需要按返回鍵以結(jié)束截屏,此時可以通過判斷是否接收到截屏結(jié)束指令來控制是否結(jié)束截屏。若用戶需要結(jié)束截屏,此時可以按返回鍵,使得終端接收到截屏結(jié)束指令,從而結(jié)束截屏,并將之前緩存到緩存集合中的圖片進行下一步處理。
第二判斷單元203,用于若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
其中,若沒有接收到截屏結(jié)束指令,則表明可以繼續(xù)滾動截屏,此時需要判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片不相同,那么則表明還沒有滾動到底,屏幕能夠顯示的內(nèi)容并未完全獲取,此時還需要繼續(xù)滾動截屏,并再次進行判斷此時的緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同。
合成單元204,用于若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
其中,例如,若緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則表明已經(jīng)緩存到底,此時可以根據(jù)一個預(yù)設(shè)的第二預(yù)設(shè)規(guī)則將緩存集合中的所有圖片進行合成以得到最終截取圖片。
作為進一步優(yōu)選的,參見圖8,其是本發(fā)明另一實施例中合成單元204的子單元的示意性框圖,所述合成單元204具體可以包括以下單元,
刪除單元401,用于若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,刪除最后一次緩存的圖片以得到一新的緩存集合.
一般情況下,若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,則表明已經(jīng)緩存到底,為了進行下一步的合成操作,此時則需要刪除最后一次緩存的圖片以得到一新的緩存集合。當(dāng)然,只要緩存集合中相同的兩個圖片即可,也就是說可以只刪除倒數(shù)第二次緩存的圖片。
這里的圖片可以是第一圖片,也可以是第二圖片,比如,當(dāng)緩存集合中倒數(shù)第二次緩存的圖片為第一圖片,最后一次緩存的圖片為跟第一圖片相同的圖片時,則新的緩存集合中只有第一圖片。當(dāng)緩存集合中的倒數(shù)第二次緩存的圖片為其中一第二圖片,最后一次緩存的圖片為跟所述其中一第二圖片相同的圖片,那么刪除一個所述其中一第二圖片,此時新的緩存集合中只有一個所述其中一第二圖片。
第一處理單元402,用于取所述新的緩存集合中的第一圖片,并剪切掉所述第一圖片中對應(yīng)的第一位置以下的內(nèi)容以得到第一剪切圖片.
其中,新的緩存集合中的所有圖片均有對應(yīng)的第一位置和第二位置。為了進行合成,可以剪切掉所述第一圖片中對應(yīng)的第一位置以下的內(nèi)容以得到第一剪切圖片。當(dāng)然,如果新的緩存集合中只有第一圖片時,則不需要對第一圖片進行合成處理,即可以取此圖片作為最終的截取圖片。
第二處理單元403,用于取所述新的緩存集合中除去最后一次緩存的第二圖片后剩余的第二圖片,并依次剪切掉每個剩余的第二圖片中對應(yīng)的第一位置以下的內(nèi)容以及對應(yīng)的第二位置以上的內(nèi)容,以得到多個依次排列的第二剪切圖片。
其中,為了合成的圖片中沒有重合的內(nèi)容,需要取所述新的緩存集合中除去最后一次緩存的第二圖片后剩余的第二圖片,并依次剪切掉每個剩余的第二圖片中對應(yīng)的第一位置以下的內(nèi)容以及對應(yīng)的第二位置以上的內(nèi)容,以得到多個依次排列的第二剪切圖片。另外,如果新的緩存集合中只有兩張圖片,那么則不需要進行此步驟而是直接進行下一步。
第三處理單元404,用于取所述新的緩存集合中的最后一次緩存的第二圖片,并剪切掉所述最后一次緩存的第二圖片中對應(yīng)的第二位置以上的內(nèi)容,以得到另一第二剪切圖片.
其中,可以取所述新的緩存集合中的最后一次緩存的第二圖片,并剪切掉所述最后一次緩存的第二圖片中對應(yīng)的第二位置以上的內(nèi)容。若最后一次緩存的第二圖片所對應(yīng)的第二位置為更新后的第二位置,那么此時應(yīng)以更新后的第二位置為準(zhǔn),以得到另一第二剪切圖片。
整合單元405,用于將所述第一剪切圖片、所述多個依次排列的第二剪切圖片以及所述另一第二剪切圖片按從上到下的順序依次排列合并成最終截取圖片。
其中,可以將所述第一剪切圖片、所述多個依次排列的第二剪切圖片以及所述另一第二剪切圖片按從上到下的順序依次排列合成,從而得到最終截取圖片。當(dāng)然,如果新的緩存集合中只有兩張圖片,即一張第一圖片和一張第二圖片,那么則可以剪切掉第一圖片對應(yīng)的第一位置以下的內(nèi)容,并剪切掉第二圖片對應(yīng)的第二位置以上的內(nèi)容,以得到第一剪切圖片和第二剪切圖片,并將第一剪切圖片和第二剪切圖片從上至下一次排布合成以得到最終截取圖片。
參見圖9,是本發(fā)明另一實施例提供的一種終端的示意框圖。如圖所示的本實施例中的終端可以包括:一個或多個處理器901;一個或多個輸入設(shè)備902,一個或多個輸出設(shè)備903和存儲器904。上述處理器901、輸入設(shè)備902、輸出設(shè)備903和存儲器904通過總線905連接。存儲器902用于存儲指令,處理器901用于執(zhí)行存儲器902存儲的指令。
其中,處理器901用于當(dāng)接收到截屏操作指令時,根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中;判斷是否接收到截屏結(jié)束指令;若沒有接收到截屏結(jié)束指令,判斷所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片是否相同;若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,根據(jù)第二預(yù)設(shè)規(guī)則合成緩存集合中的所有圖片以得到最終截取圖片。
處理器901還用于判斷當(dāng)前屏幕狀態(tài)是否為預(yù)設(shè)狀態(tài);若當(dāng)前屏幕狀態(tài)為預(yù)設(shè)狀態(tài),則執(zhí)行所述根據(jù)第一預(yù)設(shè)規(guī)則滾動屏幕以截取相應(yīng)的圖片并依次緩存到一緩存集合中的步驟。
處理器901具體還用于在當(dāng)前屏幕上設(shè)置一第一位置以及一第二位置;截取所述當(dāng)前屏幕的內(nèi)容作為第一圖片并緩存到緩存集合中;滾動屏幕并判斷位于所述第一位置的內(nèi)容是否能滾動到所述第二位置;若所述第一位置的內(nèi)容能滾動到所述第二位置,截取滾動后的屏幕的內(nèi)容為一第二圖片并依次緩存到緩存集合中;若所述第一位置的內(nèi)容不能滾動到所述第二位置,且所述第一位置的內(nèi)容滾動后所處的位置位于所述第一位置和所述第二位置之間,將所述第一位置的內(nèi)容滾動后所處的位置作為新的第二位置,并截取滾動后的屏幕的內(nèi)容為另一第二圖片以緩存到緩存集合中。
處理器901具體還用于若所述緩存集合中的倒數(shù)第二次緩存的圖片與最后一次緩存的圖片相同,刪除最后一次緩存的圖片以得到一新的緩存集合;取所述新的緩存集合中的第一圖片,并剪切掉所述第一圖片中對應(yīng)的第一位置以下的內(nèi)容以得到第一剪切圖片;取所述新的緩存集合中除去最后一次緩存的第二圖片后剩余的第二圖片,并依次剪切掉每個剩余的第二圖片中對應(yīng)的第一位置以下的內(nèi)容以及對應(yīng)的第二位置以上的內(nèi)容,以得到多個依次排列的第二剪切圖片;取所述新的緩存集合中的最后一次緩存的第二圖片,并剪切掉所述最后一次緩存的第二圖片中對應(yīng)的第二位置以上的內(nèi)容,以得到另一第二剪切圖片;將所述第一剪切圖片、所述多個依次排列的第二剪切圖片以及所述另一第二剪切圖片按從上到下的順序依次排列合并成最終截取圖片。
應(yīng)當(dāng)理解,在本發(fā)明實施例中,所稱處理器901可以是中央處理單元(centralprocessingunit,cpu),該處理器還可以是其他通用處理器、數(shù)字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
輸入設(shè)備902可以包括觸控板、指紋采傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風(fēng)等,輸出設(shè)備903可以包括顯示器(lcd等)、揚聲器等。
該存儲器904可以包括只讀存儲器和隨機存取存儲器,并向處理器901提供指令和數(shù)據(jù)。存儲器904的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器904還可以存儲設(shè)備類型的信息。
具體實現(xiàn)中,本發(fā)明另一實施例中所描述的處理器901、輸入設(shè)備902、輸出設(shè)備903可執(zhí)行本發(fā)明實施例提供的截屏方法的實施例和另一實施例中所描述的實現(xiàn)方式,也可執(zhí)行本發(fā)明實施例所描述的終端的實現(xiàn)方式,在此不再贅述。
具體實現(xiàn)中,本發(fā)明另一實施例中描述的終端包括但不限于諸如具有觸摸敏感表面(例如,觸摸屏顯示器和/或觸摸板)的移動電話、膝上型計算機或平板計算機之類的其它便攜式設(shè)備。還應(yīng)當(dāng)理解的是,在某些實施例中,所述設(shè)備并非便攜式通信設(shè)備,而是具有觸摸敏感表面(例如,觸摸屏顯示器和/或觸摸板)的臺式計算機。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的終端和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的終端和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進行順序調(diào)整、合并和刪減。
本發(fā)明實施例終端中的單元可以根據(jù)實際需要進行合并、劃分和刪減。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本發(fā)明實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分,或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換,這些修改或替換都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。