版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
主題教程(2.10.30)―、MIUI主題首先,我們手機的UI是由很多部分組成的,如鎖屏、通知欄、桌面壁紙、圖標(biāo)等等。如果我們把手機比喻成一個房子,上述的部分可想象成房子的門、窗、地板、吊燈、座椅等。那我們可以認(rèn)為原生的android系統(tǒng)就是一個毛坯房,MIUI是在這之上的一個簡裝,自定義主題就是你自己給房子做的裝修。MIUI提供主題自定義功能,其實就相當(dāng)于幫你請了一個工程隊,你可以用從眾多裝修方案(主題包)中選擇自己喜歡的效果,最后交給工程隊實施。而裝修方案可大可小,大至全屋翻新,小到只換一盞燈。目前MIUI會自帶兩個主題包,達(dá)人們也可以設(shè)計自己的主題包,大家就可以借用達(dá)人們共享出來的設(shè)計。二、準(zhǔn)備工作1■主題測試機器工欲善其事必先利其器,做題之前首先得有一部能刷MIUI的手機作為測試機。MIUI現(xiàn)有支持v4的機型分成按分辨率,可分成兩類480p(480*854和480*800)與720p(720*1280),分辨率對以后的主題制作有這影響,見后面詳述。480p的機子有:小米手機1/1S(自帶MIUI)、HTCDesireSHTCIncredibleSSamsungI9100、華為Honor、索愛LT18i、GoogleNexusS720P的機子有:小米手機2(自帶MIUI)、GoogleGalaxyNexus、GalaxySIII19300、GoogleGalaxyNexus、華為AscendD1、索尼LT26i、HTCOneX、LGLU6200附上刷機教程連接/download-html注意:在針對新版主題客戶端的測試方案上線之前,主題制作者只能在2.10.26開發(fā)版或之前版本進(jìn)行測試2■設(shè)計界面制作主題之前可先根據(jù)官方提供的主題界面模板,對主題界面進(jìn)行設(shè)計,然后再進(jìn)行切圖,將設(shè)計稿切片,分成各個小部分,用與主題制作。3■主題制作軟件的安裝官方主題工具:/thread-642823-1-1.html使用此工具需要javaM境的支持,未安裝的同學(xué)請下載:/themeeditor/jre6_2.8.3_aajfe.zip解壓得jre6文件夾,將其放到到MIUIThemeEditor目錄下(圖1所示)。
1.windows下運行,“run-windows.bat''2」inux下運行,“run-linux.sh"3.macos運行,“mand"圖1三、主題制作1■主題工具的使用打開主題工具后可點擊文件新建主題(圖2),或選擇打開主題模板
解壓主題包:拖拽后綴名為mtz格式的主題文件,置于主題工具上(如圖3),等待一段時間,便會有一個與mtz文件名稱相同的文件夾陳升,這便是解包操作。圖3打開主題以后可看到(圖4)主題名稱、制作者、設(shè)計者,以及主題版本等信息,此為必填項目,ui版本選擇為4.0,點擊下方保存主題按鈕主題文件夾內(nèi)就會生成description.xml文件,來記錄下這些信息。
主題打包mtz:點擊工具下方打包即可生成mtz格式主題文件。點擊打包并導(dǎo)入手機可將主題打包并導(dǎo)入手機并應(yīng)用,前提必須開啟手機的USB調(diào)試,并安裝手機驅(qū)動,驅(qū)動可通過豌豆莢、qq手機管家等androidpc管理軟件進(jìn)行安裝,能連上這類管理軟件即代表手機驅(qū)動安裝完成。2?圖片替換不同分辨率的手機,其圖片素材尺寸以及素材存放的位置也有所不同。如圖5所示我的蘭題?icons?res我的蘭題?icons?res組奴-包含到庫申-共享〒刻錄新建文忻drawsble-xhdpi720pdrawable-hdpi480p以桌面圖標(biāo)為例,480p圖標(biāo)文件放在drawablehdpi,720p則為drawablexhdpi,其他模塊的文件位置存放位置也與之相似。桌面圖標(biāo)替換:打開主題工具,先在左邊選擇要替換的圖標(biāo),然后點擊圖片選擇對應(yīng)的圖標(biāo)進(jìn)行替換,也可使用拖拽的方式,將要替換的圖標(biāo)直接拖至其上方,完成替換。(見圖6)回砂t詢打色幀覽,:b擊f版假曲)iires-drM.回砂t詢打色幀覽,:b擊f版假曲)iires-drM.fhlfi曲寸盤碎aMa-pEjid.]]i料綻應(yīng)甬導(dǎo)入國拆刖隱支持拖放主題文件或目1我的交檔賓面我的圭題??<打邑耳導(dǎo)入手機垂新to載至題41幵交悴靈andra:d.hronsGir點擊替換或者也接將國片拖上去模板內(nèi)毓少的圏標(biāo)可點山此按鈕導(dǎo)入□是否送禪特定擢塊飛(S'(ctlew.fetidapngl£fi£c^pkris&rket.pfLgcilkuio.plaiytr.activi4.besEntryActivity.pugcilopd?.a.phoiii口tlhiuishoiLEhou.pmg:cnknaipwandroidictivjtyLogoActivitypri£全山快電(tn.aceph£)IPSoffice(ra.ips.noffirepn^;)c?n.klipiy.udraid..&pp.piKE計巨器怙m.Acalcul?t?r2.jmt)呂歷(e^n.撫口臉ei乩calehilajph<)?豐目機(com.aridra-id.contrapEiglconandroid,conara.VideoCsdncir*-prig罄m(xù)mdroiMue?tiiC!tGiactiiritiss:Di41t?ctsAic;i.ivitypn耳android,cutacts&cliivitie?.I*e-lveKeyIialerpnf底系人(com.3i&d±aid..toiL^&Els.pn^.)交件幫助主題宿迷圉誦榔決|刑詞通圖圖6圖標(biāo)除了直接替換對應(yīng)的圖片外,還可以通過幾張?zhí)囟ǖ膱D片來控制圖標(biāo)風(fēng)格風(fēng)格(主要用于第三方圖標(biāo)的風(fēng)格統(tǒng)一),icon_border.png為最上面的一層;icon_mask.png控制圖標(biāo)顯示大小形狀,黑色區(qū)域顯示圖標(biāo)形狀;icon_pattern.png為不變色背景,icon_background.png變色背景,會根據(jù)圖標(biāo)顏色生成各種顏色背景。如圖7所示,
kon.patternicon_maskiconborder此處iconbackground圖片可以知透明或臂與icon?patternt§同的一張圖但不可不放。iconborder主題圖片素材當(dāng)中還有一種重要的圖片格式,叫做9.png。這種格式的圖片是安卓平臺上新創(chuàng)的一種拉伸卻不失真的圖片,這種圖片主要用于一些尺寸不固定的圖片,或者上面的是上面的內(nèi)容區(qū)與需要特殊控制的圖片,比如短信氣泡,輸入文字框等。這種圖片的文件名會是xxx.9.png這種格式,用主題工具解包以后,所生成的9.png圖片其上下左右各會有1像素黑邊,如圖8所示1號黑色條位置控制圖片橫向拉伸區(qū)域,就是左圖縱向綠色區(qū)域2號黑色條位置控制圖片縱向拉伸區(qū)域,就是左圖橫向綠色區(qū)域3號黑色條位置控制輸入框內(nèi)文字顯示的上下位置,即右圖紫色區(qū)域上下邊界4號黑色條位置控制輸入框內(nèi)文字顯示的左右邊距,即右圖紫色區(qū)域左右邊界
黑邊可以在ps內(nèi)直接畫上,也可通過主題工具內(nèi)附帶的軟件進(jìn)行編輯(如圖9)。在使用畫黑邊時如果失誤多選了部分,可按住shift鍵,再點擊即可擦掉,最后按ctrl+s保存。需要注意的是9.png圖片必須畫上黑邊,不然在應(yīng)用圖片的時候,即使放了對應(yīng)的圖片手機上也不會顯示。用ps畫黑邊的時候需要注意,必須用純黑色,不能有色差??商鎿Q資源路徑列克(可拖鎖):res■.irawable_hdpitres■.irawable_hdpiteld_activated_holo_light.9.png;,396x943?主題工具中的模塊介紹主題內(nèi)基本模塊Com.android.contacts通訊錄以及撥號Com.android.fileexplorer文件管理器Com.android.mms短信Cviders.downloads.ui下載管理Com.android.settings設(shè)置Com.android.systemui通知欄以及任務(wù)管理器Com.android.updater系統(tǒng)更新Com.miui.antispam防打擾Com.miui.backup備份Com.miui.home桌面Cworkassistant流量監(jiān)控framework-miui-resMIUI全局framework-resAndroid原生全局以上模塊為主題工具內(nèi)帶有圖解的模塊MIUI全局和Android原生全局內(nèi)主要存放文件是會在各種界面都會調(diào)用到的東西,比如按鈕,彈窗,進(jìn)度條等等,如在當(dāng)前模塊沒有想要修改的素材時,可以去全局找。接下來以對短信模塊的修改為例子,簡單的說說使用如何使用主題工具對主題進(jìn)行編輯。點擊模塊,若當(dāng)前無此模塊可將手機連上電腦,通過手機導(dǎo)入素材。圖10選擇要替換的圖片,右邊區(qū)域會顯示圖片存放的路徑,以及默認(rèn)素材圖片尺寸,圖10的中的黑圈中的數(shù)字就是默認(rèn)素材的尺寸。將從設(shè)計稿內(nèi)提取的素材替換進(jìn)去,然后使用主題工具內(nèi)提供的9.png工具,畫上內(nèi)容區(qū)與拉伸區(qū)。替換完成后點擊打包并導(dǎo)入手機,測試替換效果。5?簡單鎖屏的制作■tim起始區(qū)域■tim起始區(qū)域百變鎖屏在主題包里的lockscreen/advanee目錄下,manifest.xml文件是描述腳本,以上代碼為簡單的iphone鎖屏的代碼,所謂的解鎖就是將解鎖起始點移動到解鎖區(qū)域的過程,在這個解鎖過程中可以沿著運動軌跡(圖中的白線path)進(jìn)行,也可完全自由的運動,當(dāng)解鎖起始點完全包含在結(jié)束區(qū)域時解鎖完成。XY坐標(biāo)為圖片左上角的點,因為miui支持不同分辨率,所以在寫坐標(biāo)時需要注意,當(dāng)圖片以屏幕底部對齊時,其y坐標(biāo),需要以這種形式書寫:y="#screen_height89",意思其y坐標(biāo)是以屏幕高度減去圖片距離屏幕底部的高度。附上百變鎖屏綜合教程/share/link?shareid=114192&uk=10907598436.theme_values.xml文件說明主題文件內(nèi)除了圖片以外,還有theme_values.xml,這個主要用于控制當(dāng)前模塊下的文字顏色,提示文字等信息。里面的顏色代碼與普通的十六進(jìn)制顏色代碼不同,是在還在前面增加了2位用于控制文字透明度,可在主題工具中點擊切換編輯模式查看當(dāng)前模塊的theme_values.xml文件
設(shè)蠱(con.ULoraid.v川電IS^u-e從手機導(dǎo)出tw弟偉悴[衛(wèi)櫻摩贖式…打開焉村庫所國廿組■I1M茸它(tiliatf<ryptk*4f4figcLa<k'hidcp■:■uriii100.rioiLor(Ef7c303Ci1M拉它titl<c*lw1W曲k#4ptrel宅p*-?wd1M曲eAletrvLd.fcre41arSSDEfffff1M曲(tiliatf€r7ptk*sp4r-cla<kMpncioiLornewDryjcifi1M梵它*wpry_i?TL3-iz*E£B<567?1W曲制仁町F*ja*?.號1M曲-tdlatr*£f!7flO93Cdlatf&ryus<iHEfEfEOCOLOO.其它colsirnpiDryirv*i1(Ef3333331M楚它colorU?ikttfWKMO1W其它rtd*fffSKW1M曲別砂比?£tiiaribaftehj-siding16000000並1M莖它di.ca直口■:zp56.tXK>](HdpscrttwijinrEin^sn64.(HKKHBdp7.關(guān)于壁紙和鈴聲替換鈴聲將準(zhǔn)備好的鈴聲放在主題包的ringtones目錄下,并按如下規(guī)則命名。來電鈴聲:ringtone.mp3通知鈴聲:notification.mp3鬧鐘鈴聲:alarm.mp3替換壁紙(包括桌面壁紙和鎖屏壁紙)桌面壁紙和鎖屏壁紙放在主題包的wallpaper目錄下:桌面壁紙:default_wallpaper.jpg鎖屏壁紙:default_lock_wallpaper.jpg領(lǐng)先android的鎖屏技術(shù)教程我們的目標(biāo)是最大化鎖屏界面的自由度,讓解鎖界面和解鎖方式可以通過主題包很方便的更換。百變鎖屏?xí)r時候進(jìn)軍2.0新時代了,我們?nèi)詴^續(xù)發(fā)力,加入更多更酷的新功能!manifest.xml百變鎖屏在主題包里的lockscreen/advanee目錄下,manifest.xml文件是描述腳本frameRate:指定幀率,如果動畫緩慢,可以指定小一點的值,省電。默認(rèn)為30。displayDesktop屬性,默認(rèn)為false,透視到桌面功能,如果沒有鎖屏壁紙或者鎖屏壁紙可以被移開或透明時可以看到桌面launcher或者是鎖屏前的應(yīng)用程序??梢酝昝缹崿F(xiàn)WP7,Meego,阿里云等的解鎖界面。界面元素的遮擋取決于在xml中出現(xiàn)的先后,最先出現(xiàn)的在最下層?!碙ockscreenversion="l"frameRate=""displayDesktop="boolean"〉〈Image/>〈Image/>〈Unlocker/〉〈Unlocker/〉〈Time/〉〈DateTime/〉〈Text/〉〈/Lockscreen〉壁紙元素Wallpaper元素引用系統(tǒng)設(shè)置的壁紙,除了不能指定圖片源外其他和Image元素相同,可以有動畫和其他屬性控制。如果沒有此元素則不顯示壁紙??梢杂卸鄠€。例子:<Wallpaper/>變量及變量數(shù)組<Var><VarArray>分別定義單個變量和變量數(shù)組<Varname=""expression=""type=""const=""/>name變量名expression變量對應(yīng)的表達(dá)式或常量注意:如果定義字符串常量需要多一套單引號:expression="'mystring'"type=number/string定義數(shù)值變量或字符串變量默認(rèn):numberconst=true變量只會在初始化時計算一次,以后不會重新計算,可以提高效率。如果變量值會在鎖屏運行期間改變,const設(shè)為false默認(rèn):false〈VarArraytype="string"〉〈Vars〉<Varname="date_formatl"index="#time/2000%5"/〉<Varname="date_format2"index="2"const="true"/></Vars>〈Items〉〈Itemexpression="ifelse(isnull(@date_format),'MMMMd日EEEE',@date_format)"/>〈Itemvalue="EEEE"/>〈/Items〉〈/VarArray〉Item數(shù)組元素定義expression元素對應(yīng)的表達(dá)式value如果元素是常量,則用value指定常量值//定義了一個每隔兩秒輪換一次日期顯示格式的DateTime元素.//數(shù)組元素可以用來根據(jù)數(shù)字變量值顯示不同的字符串〈!一ifconstistrue,thevariablewillonlyevaluateonceattheinitialtime,一〉<Varname="show_date"expression="ifelse(isnull(#show_date),l,#show_date)"type="number"const="true"/><Varname="text_size_date"expression="ifelse(isnull(#text_size_date),18,#text_size_date)type="number"const="true"/><VarArraytype="string"><Vars><Varname="date_format1"index="#time/2000%5"/><Varname="date_format2"index="2"const="true"/></Vars>〈Items〉<Itemexpression="ifelse(isnull(@date_format),'MMMMd日EEEE',@date_format)"/〉<Itemvalue="EEEE"/〉<Itemvalue="yyyy年"/〉<Itemvalue="MMMM"/〉<Itemvalue="d日"/〉〈/Items〉〈/VarArray〉//顯示英文月份<VarArraytype="string"〉<Vars><Varname="month_str"index="#month"/〉</Vars>〈Items〉〈Itemvalue="January"/〉〈Itemvalue="February"/>〈Itemvalue="November"/〉〈Itemvalue="December"/〉〈/Items〉〈/VarArray〉〈Texttext="@month_str"color="#FFFFFFFF"size="20".../>變量表達(dá)式,src除外當(dāng)前支持變量:變量以#開頭解鎖物件屬性:格式:物件名.屬性名#unlocker.move_xmove_x解鎖時在x方向移動距離move_y解鎖時在y方向移動距離move_dist解鎖時移動距離state解鎖狀態(tài):正常:0按下:1到達(dá)解鎖位置:2全局變量:time當(dāng)前時間,longtouch_x當(dāng)前觸摸點xtouch_y當(dāng)前觸摸點ybattery_level電池電量0-100sms_unread_count未讀短信call_missed_count未接電話//時間日期變量time_sys變量,為系統(tǒng)當(dāng)前時間毫秒數(shù)。ampm上下午//0am,1pmhour12小時,12小時制hour24小時,24小時制minute分鐘second秒year年month月//0-11date日day_of_week星期//1-7星期日到星期六screen_width屏幕寬度screen_height屏幕高度battery_state電池狀態(tài):正常:0充電:1電量低:2已充滿:3例子:alpha值的變量表達(dá)式表示該圖片只有在非充電狀態(tài)顯示,并且隨著解鎖水平方向的拖動逐漸變透明至消失?!碔magex="162"y="#screen_height-84"src="hs_path_bg.png"alpha二"(255-#unlocker.move_x/100*255)*min(1,abs(l-#battery_state))"/>表達(dá)式支持加減乘除取模括號和函數(shù)加減乘除取模:+-*/%支持函數(shù):sin,cos,tan,asin,acos,atan,sinh,cosh,sqrt,abs,min,max不解釋len(數(shù)字)給定數(shù)字位數(shù)len(1234)=4digit(數(shù)字,第幾位)取給定數(shù)字的第幾位digit(1234,2)=3round()四舍五入取整int()向下取整eq(x,y)//x==y?1:0ne(x,y)//x!=y?1:0ge(x,y)//x>=y?1:0gt(x,y)//x>y?1:0le(x,y)//x<=y?1:0lt(x,y)//xisnull(x)//x==null?1:0//是否表達(dá)式包含空變量,通常用于判斷綁定的變量是否查到數(shù)據(jù)not(x)x>0?0:1ifelse(x,y,z)//x>0?y:zifelse(x1,y1,x2,y2,...,z)ifx1>0returny1;elseifx2>0returny2;...;elsereturnz+可以拼接字符串,一些函數(shù)也可以支持字符串,isnull可以判斷字符串變量是否為空,ifelse可以選擇字符串,字符串比較函數(shù)eqs(@string1,@string2)元素可見性支持表達(dá)式visibility=“表達(dá)式"v=0不可見>0可見Image,Text,Time的屬性align=left,center,right坐標(biāo)點水平對齊方式Image,Time屬性alignV=top,center,bottom坐標(biāo)點垂直對齊方式文本部件顯示指定格式的文字,坐標(biāo)屬性支持變量color:文字顏色,#FFFFFFFFsize:文字大小format:如果需要在文字中顯示變量數(shù)字,需要指定格式,用%4指定數(shù)字位置paras:如果指定了format,需要在paras里指定%d對應(yīng)的變量表達(dá)式,可以有多個變量表達(dá)式用","隔開align:left,center,right,文字坐標(biāo)的對齊方式Text新增自動滾動功能,如果制定了寬度和滾動速度marqueeSpeed,在文字超過寬度的時候會自動滾動顯示angle:旋轉(zhuǎn)角度自動滾動功能,如果制定了寬度和滾動速度marqueeSpeed,在文字超過寬度的時候會自動滾動顯示文本支持多行<Textname="text1"multiLine="true"width="150".../>#text1.text_height為折行后的高度可選屬性:spacingMult行距倍數(shù)默認(rèn)1spacingAdd行距增加量默認(rèn)0next_alarm_time下一個鬧鐘時間<Texttext="@next_alarm_time".../>文字和日期支持旋轉(zhuǎn)<Textangle=""/>〈Textformat="下一個鬧鐘:[%s]電池:[%d%%]"paras="@next_alarm_time,#battery_level"/〉〈lextx=y=text=color=size=format=paras=#x,#yalign=marqueeSpeed=>〈PositionAnimation/〉〈/Text〉<Textx="240"y="130+#unlocker.move_y"category="Charging"color="#AAFFFFFF"alpha="200"size="24"format="正在充電(%d%%)"paras="#battery_level"align="center"/>文本元素支持文字寬度變量屬性text_width<Textname="tt".../>#tt.text_widthtextExp屬性支持字符串表達(dá)式:例子:天氣信息,如果溫度為空顯示一非空顯示數(shù)值〈Textvisibility="#hasweather"x="(#screen_width/2)+180"y="#screen_height-290"w="360"size="36"color="#ffffff"align="right"textExp="ifelse(isnull(#weather_temperature),'—',#weather_temperature)+'C'"/>時間部件src表示時間圖片的前綴,如下表示使用time_0.png,time_1.png,...time_9.png,time_dot.png.坐標(biāo)屬性支持變量表達(dá)式<Timex="10"y="10"src="time.png"></Time>日期部件顯示指定格式的日期format:支持標(biāo)準(zhǔn)日期格式,另外增加農(nóng)歷:NNNN<DateTimex=""y=""color=""size=""format=""><PositionAnimation/><DateTime>九月:M->9MM->097分鐘:m->7mm->07mmm->007mmmm->00071970年4月6日3:23am"yyyy/MM/ddh:mmaa"->"1970/04/063:23am""M月d日h:mmaa"->"4月6日3:23am""E"->"周三""EEEE"->"星期三""紀(jì)念日:M/d"->"紀(jì)念日:4/6"24小時:"kk:mm"->"13:34"圖片部件圖片部件用來在鎖屏界面上顯示一個圖片,可以指定各種屬性<Imagex=""y=""w=""h=""centerX=""centerY=""angle=""src=""srcid=""alpha=""antiAlias=""/>x,y:相對于屏幕左上角的坐標(biāo)w,h:寬和高centerX,centerY:旋轉(zhuǎn)中心angle:旋轉(zhuǎn)角度,一周360度src:圖片名稱srcid:圖片序列后綴數(shù)字,一般用變量表示,可以根據(jù)變量顯示不同的圖片,如果src="pic.png"srcid="1"則最后會顯示圖片"pic_1.png"alpha:透明度0-255,小于等于0不顯示antiAlias:true/false抗鋸齒,如果為true圖片在變形旋轉(zhuǎn)時不會有鋸齒,但是速度會慢srcExp:圖片源表達(dá)式srcFormat:圖片源格式srcForamtExp:圖片源格式表達(dá)式srcParas:圖片源參數(shù)例子:<Imagex="0"y="#screen_height-323"src="bottom_bg.png"/>元素實際位置變量,可以獲得元素在動畫時的實際位置:actual_xactual_y〈Imagename二"img"???>〈PositionAnimation>〈/PositionAnimation>〈/Image〉#img.actual_x#img.actual_y用圖片顯示數(shù)字的部件<ImageNumbernumber=""src="">number是要顯示的數(shù)字表達(dá)式src是圖片源的文件名,支持SourceAnimation如果src="number.png"則會使用number_0.pngnumber_1.png...圖片文件來繪制數(shù)字。類似Time部件//srcExp:圖片源表達(dá)式〈Imagex="210"y="-26"align二"center"srcExp二"'weather/weather_'+#weather_id+@icon_suffix+'?png'"/>元素動畫所有元素都支持動畫動畫分為:圖片源,位置,大小,旋轉(zhuǎn),透明度每種動畫相互獨立,各自循環(huán)播放,動畫由若干關(guān)鍵幀組成,關(guān)鍵幀包括幀屬性和時間,除圖片源動畫外,其它動畫會根據(jù)當(dāng)前時間找到相鄰的兩個關(guān)鍵幀,然后線性插值計算當(dāng)前的屬性。如果第一幀時間不從0開始,則默認(rèn)時間為0的第一幀為圖片原始屬性,時間單位為毫秒。位置動畫中的位置是相對于圖片自身的坐標(biāo)。<Image><PositionAnimation><Positionx="10"y="20"time="100"/>〈Positionx="100"y="200"time="1000"/></PositionAnimation></Image>〈RotationAnimation〉〈Rotationangle=""time=""/>〈Rotationangle=""time=""/></RotationAnimation>〈SizeAnimation〉/c?〃〃〃〃.?〃〃/\<Sizew=h=time=/><Sizew=h=time=/></SizeAnimation>〈!--0-255-->〈AlphaAnimation〉〈Alphaa=""time=""/><Alphaa=""time=""/>〈/AlphaAnimation〉例子:位置動畫表示1秒從屏幕最左端到最右端,停留1秒,透明度動畫表示開始透明度為175,在從最左端到最右端過程中透明度不變,到達(dá)最右端后0.5秒漸變?yōu)椴煌该?,然?.5秒變?yōu)橥该飨АH缓笱h(huán)播放。<Imagex="0"y="#screen_height-177"src="charging_light.png"category二"Charging")<PositionAnimation>〈Positionx="480"y="0"time="1000"/〉〈Positionx="480"y="0"time="2000"/>〈/PositionAnimation〉〈AlphaAnimation〉〈Alphaa="175"time="0"/><Alphaa="175"time="1000"/><Alphaa="255"time="1500"/><Alphaa="0"time="2000"/></AlphaAnimation>〈/Image》注意:只有圖片支持圖片源動畫圖片源動畫稍有不同,沒有插值,x,y可選,表示相對圖片的位置,當(dāng)前的圖片是在列表里的找到第一個大于當(dāng)前時間的那個點指定的〈SourcesAnimation〉/o〃〃〃〃〃??!〃丄.〃V/\<Sourcex=y=src=pic1.pngtime二100/><Sourcex=""y=""src="pic2.png"time="1000"/>〈/SourcesAnimation〉圖片遮罩x,y坐標(biāo),src為遮罩圖片,不透明黑色部分表示不透明,其他部分為透明。align:坐標(biāo)是相對于所屬圖片還是絕對位置,如果是相對,圖片移動是遮罩會相應(yīng)跟隨移動。否則遮罩保持不動?!āāāāā▉AV〃〃丄〃〃〃〃〃〃\〈Maskx=y=src=centerX=centerY二angle=align=〉〈SourcesAnimation/〉〈RotationAnimation/〉〈PositionAnimation/〉〈/Mask〉遮罩同樣可以有源動畫,旋轉(zhuǎn)動畫,和位置動畫,屬性支持變量表達(dá)式<Imagex="444"y="#screen_height-92"src="hs_path_light?png">〈PositionAnimation〉<Positionx="-438"y="0"time二"20007〉</PositionAnimation><Maskx="0"y="#screen_height-92"src="hs_path_mask_r.png"align二"absolute"/〉</Image>category屬性界面上除解鎖部件外所有元素可以指定category屬性,ChargingBatteryLowBatteryFullNormal,指定了category屬性的元素僅會在該狀態(tài)下顯示,可以用來做充電文字,動畫等的顯示。如<Imagex="100"y="100"src="pic.png"category="Charging"/>Slider部件<Slidername="">name:名字,用來做變量名bounceInitSpeed,bounceAccelation回彈動畫初始速度和加速度(距離單位為像素,時間單位為秒),都支持表達(dá)式可以有任意個Slider部件。起始點,表示點擊區(qū)域,坐標(biāo)和寬高,起始點中包含的元素都會跟隨當(dāng)前操作的拖動移動位置。alwaysShow="true/false"丄?丄〃〃〃〃〃〃1〃〃ioi〃〃ioi〃〃\〈StartPointx=y=w=h=normalSound二pressedSound二>正常狀態(tài),可以包含若干元素〈Normalstate〉〈Image/〉〈Time/〉〈DateTime/〉〈Text/〉〈/Normalstate〉在點擊區(qū)域按下,表示開始觸發(fā)操作,拖動,隱藏其他狀態(tài)元素,顯示這些元素,〈PressedState〉〈Image/〉<Time/>〈DateTime/〉<Text/>〈/PressedState〉達(dá)到觸發(fā)目標(biāo)后,隱藏其他元素,顯示這些元素〈ReachedState〉〈Image/〉<Time/>〈DateTime/〉<Text/></ReachedState>〈/StartPoint〉三個狀態(tài)都可以不指定,可以使用變量來改變其他界面元素狀態(tài)來表示觸發(fā)過程。Slider目的,坐標(biāo)和大小,當(dāng)起始點的x,y點落入EndPoint目標(biāo)區(qū)域矩形時,達(dá)到觸發(fā)位置,此時松開手指即可以產(chǎn)生觸發(fā)可以有多個觸發(fā)目的〈EndPointx=y=w=h=reachedSound二〉//Slider執(zhí)行的動作,可以指定不同的intent」?〃〃」〃〃」〃〃〃〃〃〃/\<Intentaction=type=category=package=class=/>〈Normalstate〉〈/Normalstate〉<!一showthetargetpositionifpressedtryingtounlock一〉〈PressedState〉<Image/>〈/PressedState〉<!一showspecifiedimagewhenreachedtarget,iftouchupthenperformunlock一〉〈ReachedState〉〈Image/〉〈/ReachedState〉//Slider路徑tolerance:開始觸發(fā)操作后移動時路徑最大距離超過這個值則取消,回到正常狀態(tài)。Path可以指定x,y坐標(biāo),默認(rèn)為0,Position的坐標(biāo)為相對坐標(biāo)。<Pathx=""y=""tolerance="”〉<Positionx=""y=""/><Positionx=""y=""/></Path>〈/EndPoint〉例子:<Slidername="slider"〉<StartPointx="31"y="#screen_heightT17"w="90"h="90"〉〈Normalstate〉<Imagex="31"y="#screen_heightT17"src="unlock_button.png"〉〈/Image〉〈/Normalstate〉</StartPoint><EndPointx="359"y="#screen_height-117"w="90"h="90"〉<PressedState><Imagex="359"y="#screen_heightT17"src="unlock_target.png"〉〈/Image〉</PressedState><Pathx="0"y="#screen_heightT17"〉<Positionx="31"y="0"/><Positionx="359"y="0"/></Path></EndPoint></Slider>Slider的intent也可以為Trigger和Command,—個Trigger可以有多個Command。Trigger和Command請見Trigger和CommandUnlocker繼承Slider,以上用法只需把tag名的Slider改為Uniocker.解鎖部件回彈動畫,請見/thread-290094-1-1.html鎖屏音效StartPoint:normalSound,pressedSound,指定在normal和press狀態(tài)播放的音效EndPoint:reachedSound,到達(dá)該endpoint后播放的音效〈Unlockername="unlocker"〉〈StartPointx="0"y="440"w="480"h="400"normalSound="sound_normal.mp3"pressedSound="sound_normal.mp3"〉<EndPointx="0"y="640"w="480"h="400"reachedSound="sound_reached.mp3"〉</Unlocker>按鈕元素按鈕元素可以用來接收點擊,雙擊等事件,并可根據(jù)trigger的定義來控制界面上其他元素。按鈕元素也可以將事件傳遞給界面上其他元素,來使其他元素響應(yīng)用戶在鎖屏界面上的操作。<Buttonname=""x=""y=""w=""h=""listener="">所有元素增加name屬性,按鈕的控制對象通過name來指定。x,y,w,h指定了按鈕區(qū)域。listener,指定該按鈕的事件要傳給哪個元素。一個Button可以有若干個trigger,trigger定義了按鈕動作引發(fā)相關(guān)的操作,如控制某元素的屬性<Triggeraction=""target=""property=""value=""/>action:按鈕動作:down(按下),up(抬起),double(雙擊),long(長按,暫時未實現(xiàn))target:控制目標(biāo)名property:屬性名,目前支持:visibility以后會增加其他屬性控制。value:屬性值,目前針對boolean有:true,false,toggleButton元素的xml結(jié)構(gòu):<Button>//可以指定任意個trigger,也可以不指定。(Triggers〉(Trigger/〉〈Trigger/〉</Triggers>//按鈕正常狀態(tài),可以包含任意界面元素,如ImageText等,可以不指定注意:Button中Image的坐標(biāo)和Button自己的坐標(biāo)是獨立的,都是相對于Button的父元素?!碞ormal〉〈Image/〉〈Text/〉〈/Normal〉//按鈕按下狀態(tài),可以包含任意界面元素,如ImageText等,也可以不指定,如果指定了//normal狀態(tài),則顯示normal狀態(tài)元素?!碢ressed〉〈Image/〉〈Text/〉〈/Pressed〉〈/Button〉音樂控制元素指定名稱,從而使顯示與否可以由另一個按鈕控制,比如雙擊。必須包含4個Button和1個Text,并且name分別為指定的名稱。可以包含其他任意界面元素如Image等。屬性autoShow,true/false如果進(jìn)入鎖屏是在播放音樂是否自動顯示MusicControlmusic_state,數(shù)字,播放狀態(tài)0停止1播放visibility數(shù)字0=false1=true〈MusicControlname="music_control"x=""y=""〉//專輯封面,和普通Image一樣除了圖片是綁定到專輯封面的,可以指定大小,加Mask等。<Imagename="music_album_cover"/〉//歌名和歌手顯示文字<Textname="music_display"/〉//上一首按鈕〈Buttonname="music_prev"/〉//下一首按鈕〈Buttonname="music_next"/〉//播放按鈕<Buttonname="music_play"/〉//暫停按鈕<Buttonname="music_pause"/〉〈/MusicControl〉例子:〈!--雙擊控制音樂控制顯示隱臧--〉<Buttonx="178"y="529"w="126"h="126"〉〈Triggers〈<Triggeraction="double"target="music_control"property="visibility"value="toggle"/〈〈/Triggers〈〈/Button〈〈MusicControlx="0"y="300"name="music_control"visibility="false"〉<Imagename="music_album_cover"x="240"y="40"alpha="150"align="center"alignV="center"/>〈!一背景圖一〉〈Imagesrc="music_bg.png"x="40"y="0"alpha="100"/><!--Text新增自動滾動功能,如果制定了寬度和滾動速度marqueeSpeed,在文字超過寬度的時候會自動滾動顯示--><Textname="music_display"x="240"y="10"w="300"marqueeSpeed="30"size="24"color="#FFFFFF"alpha="150"align="center"/><Buttonname="music_prev"x="40"y="40"w="108"h="84">〈Normal〉<Imagesrc="music_previous_n.png"x="40"y="40"/>〈/Normal〉〈Pressed〉<Imagesrc="music_previous_p.png"x="40"y="40"/></Pressed>〈/Button〉〈Buttonname="music_next"x="332"y="40"w="108"h="84">〈Normal〉<Imagesrc="music_next_n.png"x="332"y="40"/>〈/Normal〉<Pressed><Imagesrc="music_next_p.png"x="332"y="40"/></Pressed>〈/Button〉〈Buttonname="music_play"x="186"y="40"w="108"h="84"〉〈Normal〉<Imagesrc="music_play_n.png"x="186"y="40"/>〈/Normal〉<Pressed><Imagesrc="music_play_p.png"x="186"y="40"/></Pressed>〈/Button〉〈Buttonname="music_pause"x="186"y="40"w="108"h="84"〉〈Normal〉<Imagesrc="music_pause_n.png"x="186"y="40"/>〈/Normal〉<Pressed><Imagesrc="music_pause_p.png"x="186"y="40"/></Pressed>〈/Button〉〈/MusicControl〉音量調(diào)節(jié)#volume_level現(xiàn)在音量#volume_level_old調(diào)節(jié)之前的音量取值:1-15根據(jù)二者比較判斷是增大還是減小#volume_type//STREAM_VOICE_CALL=0;///*Theaudiostreamforsystemsounds*///STREAM_SYSTEM=1;///*Theaudiostreamforthephoneringandmessagealerts*///STREAM_RING=2;///*Theaudiostreamformusicplayback*///STREAM_MUSIC=3;///*Theaudiostreamforalarms*///STREAM_ALARM=4;///*Theaudiostreamfornotifications*///STREAM_NOTIFICATION=5;///*@hideTheaudiostreamforphonecallswhenconnectedonbluetooth*///STREAM_BLUETOOTH_SCO=6;///*@hideTheaudiostreamforenforcedsystemsoundsincertaincountries(e.gcamerainJapan)*///STREAM_SYSTEM_ENFORCED=7;///*@hideTheaudiostreamforDTMFtones*///STREAM_DTMF=8;///*@hideTheaudiostreamfortexttospeech(TTS)*///STREAM_TTS=9;///*@hideTheaudiostreamforFM*///STREAM_FM=10;一般鎖屏下只能調(diào)music3#volume_type>=0表示正在調(diào)節(jié)音量,調(diào)節(jié)完畢后值為-1可根據(jù)這個顯示或隱藏音量顯示contentprividercontentprovider支持where的格式化:where=""whereFormat=""whereParas=""contentprovider支持依賴關(guān)系,即某個ContentProviderBinder查詢結(jié)束后獲取的變量作為下一個ContentProviderBinder查詢的參數(shù)<ContentProviderBindername="name1"dependency="name2"><ContentProviderBindername="name2">name2查詢結(jié)束后會觸發(fā)namel的查詢,namel的查詢可以使用name2的變量。并且如果name2數(shù)據(jù)發(fā)生變化重新查詢后,會觸發(fā)name1的重新查詢。contentprovider提供了查詢應(yīng)用程序信息的通用接口,定義了新的xml代碼來查詢contentprovider,并查詢到的信息綁定到變量上,用來顯示第三方應(yīng)用程序的信息,只要第三方應(yīng)用提供相應(yīng)的contentprovider。比如可以顯示天氣信息,郵件,待辦事項,便簽,等等,你也可以寫一個應(yīng)用程序查詢?nèi)魏文阆胍男畔⒉⑼ㄟ^contentprovider來提供給鎖屏使用。〈VariableBinders〉〈ContentProviderBinderuri="content://sample/test"curiFormat=""uriParas=""columns="coll,col2"where=""args=""order=""countName="count_name">(Variablename="variable_namel"type="int"column="col1"row="0"/>(Variablename="variable_name2"type="string"column="col2"row="0"/>〈/ContentProviderBinder〉〈/VariableBinders〉VariableBinders:定義各種變量綁定到的源,目前僅支持contentprovider。ContentProviderBinder:定義一個contentprovider源和綁定到它上面的變量uri:contentprovideruri,指定選用哪個contentprovideruriFormat:如果uri需要添加變量,可以用格式化,需要和uriParas—起使用uriParas:同Textelement的格式columns:需要查詢的列名,用逗號分隔where:查詢條件,同SQLargs:"where"的參數(shù).order:排序條件,同SQLcountName:將查詢結(jié)構(gòu)數(shù)量綁定到該變量名Variable:定一個綁定變量name:變量名type:contentprovider中的數(shù)據(jù)類型:string/double/float/int/longcolumn:變量綁定到的列的名稱.row:變量綁定到的行數(shù),默認(rèn)為0.<!--從谷歌資訊天氣查詢天氣信息一〉<!一一contentproviderbinderforgoogleweather一一〉〈VariableBinders〉〈ContentProviderBinderuriFormat="content://com?google.android.apps?genie?geniewidget?weather/weather/current/%d"uriParas="#time_sys"columns二"iconResId,location,temperature,lowTemperature,highTemperature,description"countName二"hasweather"〉<Variablename二"weather_id"type="int"column二"iconResld"/〉<Variablename二"weather_location"type二"string"column二"location"/〉<Variablename二"weather_temperature"type="int"column二"temperature"/〉<Variablename二"weather_lowTemperature"type="int"column二"lowTemperature"/〉<Variablename二"weather_highTemperature"type="int"column二"highTemperature"/〉<Variablename="weather_description"type="string"column="description"/>〈/ContentProviderBinder〉〈/VariableBinders〉〈!一一weatherinfodisplay一一〉〈Textvisibility="#hasweather"x="240"y=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級上冊教學(xué)計劃范文五篇
- 書法活動總結(jié)
- 銷售季度工作總結(jié)(集錦15篇)
- 銷售代表具體的總結(jié)10篇
- 小學(xué)體育教研活動計劃書
- 新員工個人工作總結(jié)6篇
- 建筑類實習(xí)報告范文
- 讀書的受到的教益300字10篇
- 開學(xué)典禮講話稿15篇
- 電工類實習(xí)報告模板集合八篇
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- 物業(yè)管理服務(wù)人員配備及崗位職責(zé)
- 鄭州2024年河南鄭州市惠濟區(qū)事業(yè)單位80人筆試歷年參考題庫頻考點試題附帶答案詳解
- 深靜脈血栓的手術(shù)預(yù)防
- 【9道期末】安徽省合肥市廬陽區(qū)2023-2024學(xué)年九年級上學(xué)期期末道德與法治試題
- 腹腔鏡全胃切除手術(shù)配合
- 2024-2030年中國非物質(zhì)文化遺產(chǎn)市場前景調(diào)研及投資風(fēng)險分析報告
- 酒店員工人事制度培訓(xùn)
- 2023年山西省公務(wù)員錄用考試《行測》真題及答案解析
- 醫(yī)美整形退款協(xié)議書范本下載
- 國培培訓(xùn)成果匯報
評論
0/150
提交評論