從2019.5.22開始,SOUI版本號(hào)更新到2.9.0.2,后面開始準(zhǔn)備3.0的開發(fā),歷時(shí)近3個(gè)月,現(xiàn)在3.0的主要工作基本完成。
為了便于大家區(qū)別2.x,3.0啟用了新的代碼倉庫:https://github.com/soui3/soui
<https://github.com/soui3/soui>
3.0相比2.x有以下代碼的更新:
1、規(guī)范代碼中使用的類名,2.x中由于歷史原因有一些類名一直是Cxxx這樣的以C開頭的類名,新版本統(tǒng)一調(diào)整為S開頭,比如CAutoRefPtr=>SAutoRefPtr,
CSimpleWnd=>SNativeWnd等。
2、刪除原來的?CSize SWindow::GetDesiredSize(LPCRECT)重載方法,只保留CSize
SWindow::GetDesiredSize(int wid, int hei)這個(gè)方法。如果有息定義控件重載了這個(gè)方法需要注意。
3、將原來指定主窗口大小的屬性從XML的SOUI結(jié)點(diǎn)調(diào)整到root結(jié)點(diǎn)。soui結(jié)點(diǎn)不和swindow對(duì)象對(duì)應(yīng),而root結(jié)點(diǎn)是一個(gè)SWindow對(duì)象,把屬性遷移到root更合理。
4、調(diào)整光標(biāo)顯示的實(shí)現(xiàn)代碼。在uidef.xml里增加了caret元素,用來描述支持光標(biāo)行為。支持動(dòng)畫光標(biāo),支持改變光標(biāo)顏色。
<caret color="rgb(255,0,0)" animate="true" speed="30" interpolator="Accelerate"
/>
5、支持滾動(dòng)條動(dòng)畫特效,配置后滾動(dòng)條只在有鼠標(biāo)操作才顯示,否則就隱藏,采用漸顯漸隱過渡。在XML中配置fadeInterpolator屬性來指定插值動(dòng)畫類型,再配置一個(gè)fadeSpeed屬性(整數(shù),默認(rèn)30)就可以控制動(dòng)畫。
6、完全的矩陣變換支持。增加SWindow::SetMatrix來實(shí)現(xiàn)窗口顯示的旋轉(zhuǎn),平移,綻放等矩陣支持的操作。
7、從Android移植了Animation模塊,以前一個(gè)與Android的數(shù)值動(dòng)畫對(duì)應(yīng)的ValueAnimation模塊??梢曰旧蠈?shí)現(xiàn)Android的全部動(dòng)畫效果。通過實(shí)現(xiàn)AnimationSet的repeatCount屬性,還可以實(shí)現(xiàn)Android不方便實(shí)現(xiàn)的動(dòng)畫效果。
總之,3.0一個(gè)任務(wù)就是只需要簡單的配置XML主可以把界面效果做得更加炫酷。
此外,2.8中也引入了兩個(gè)重大的更新,這里也一便介紹一下:
1、調(diào)整style的命名支持,如果style以window.style的形式命名,那前面的window就是控件類型,而window.style還是一個(gè)常規(guī)的style。
假定用戶已經(jīng)在style中定義了一個(gè)<button.web
xxxx/>這樣的style,?通過支持這們的命名規(guī)則,2.8以上的SOUI,XML可以直接使用"button.web"來創(chuàng)建一個(gè)button控件,該控件自動(dòng)使用button.web這個(gè)style。
2、增加界面模板支持。
如果一個(gè)界面中有很多元素是重復(fù)的,但是內(nèi)容是變化的,常規(guī)的做法可能是使用列表來做。但是用列表可能代表著用戶需要增加代碼來寫Adapter等。
有了模板支持,就可以通過模板來直接插入一組新的元素,而不需要使用列表控件。
詳細(xì)說明參見:https://www.cnblogs.com/setoutsoft/p/10528519.html
<https://www.cnblogs.com/setoutsoft/p/10528519.html>
?
啟程軟件? 2019年8月4日
?
熱門工具 換一換