ui設(shè)計(jì)的設(shè)計(jì)思路,?
1,明確劃分與UI相關(guān)和與UI無(wú)關(guān)的部分
根據(jù)UI的設(shè)計(jì)圖,,我們首先要把界面展現(xiàn)的數(shù)據(jù)先抽出去,,只看UI的表現(xiàn),。也就是說(shuō),把UI相關(guān)的部分抽出來(lái),。比如一個(gè)界面可能需要分幾部分組成,,每一部分大概怎么設(shè)計(jì)等。
2,,劃分屏幕大小,,明確出跳轉(zhuǎn)關(guān)系
要考慮到你的APP所對(duì)應(yīng)的屏幕大小及DPI,不同的屏幕與DPI,,你有可能會(huì)存在不同的UI布局,,最典型的是在3.0以上的SDK版本,,可能引入了Fragement元素,手機(jī)屏幕與平板的屏幕的UI設(shè)計(jì),,完全是兩種不同的風(fēng)格,。
還有,盡可能地明確出跳轉(zhuǎn)關(guān)系,,這可以用一些小卡片的形式來(lái)標(biāo)記,,一個(gè)卡版表示一個(gè)畫(huà)面,,把不同畫(huà)面之間的遷移關(guān)系明確出來(lái),。
同時(shí),還要把這些畫(huà)面之前的相同點(diǎn)與不同點(diǎn)找出來(lái),,因?yàn)檫@會(huì)影響到是否決定提取共通畫(huà)面,。
3,列出需要用到的UI元素(Widget)
把界面上展現(xiàn)的UI元素列出來(lái),,像常用的button, imagebutton這些很簡(jiǎn)單,,一看就知道,關(guān)鍵是有些UI,,可能會(huì)涉及到一些自定義的View,,這里一定要多考慮。
另外,,有可能為了統(tǒng)一控制,,比如也有可能擴(kuò)展一個(gè)Button,派生類(lèi)里面可能只是改變一個(gè)字體大小等,,這種做法通常是用于多數(shù)UI的字體大小相同,,可以抽象出來(lái)個(gè)共通的Button,這樣在各個(gè)UI里面,,就可以不用都來(lái)設(shè)置這個(gè)字體大小,。
還有,也可以抽出共通的style,,比如textview的style,,文本顏色,字體大小,,是否加粗等,。
4,列出哪些UI元素可以用SDK的,,哪些則是需要自定義
據(jù)我的經(jīng)驗(yàn),,通常一個(gè)項(xiàng)目里面都會(huì)有自定義的組件(View),多數(shù)是組合控件——把不同的Widget組合成一個(gè)Layout,。這還要需要根據(jù)項(xiàng)目自身的需求來(lái)定,。
注意:這里一定要有一個(gè)良好的設(shè)計(jì),,以應(yīng)地需求變更。比如第一版需求,,可能不需要一些組合View,,直接使用SDK自身的Widget就能完成,但經(jīng)過(guò)一些變動(dòng)之后,,發(fā)展之前的UI設(shè)計(jì)不合時(shí)宜,,可能需要提供自定義的View,那么原來(lái)用到SDK自身的Widget的地方可能需要改動(dòng),。這種改動(dòng)說(shuō)大也大,,說(shuō)小也小,在設(shè)計(jì)的時(shí)候,,要多考慮一下這種需求變更,。
5,完成UI界面的繪制
這一步,,其實(shí)不一定會(huì)用到,,通常情況下,不會(huì)涉及到自繪制,,因?yàn)樽岳L制比較麻煩,,而且費(fèi)時(shí)間,但是在特殊情況下,,自繪制能提高效率,,因?yàn)槟阌肰iew布局,會(huì)涉及到layout, measure, touch event, dispatch draw等方面,,這些會(huì)影響性能,。
6,進(jìn)行內(nèi)部邏輯和UI界面的整合
通常一個(gè)View里面,,都會(huì)有一些邏輯,,特別是自定義的View,可能會(huì)封裝一些特定的屬性,。
在使用這些View的時(shí)候,,UI的activity會(huì)與這些View有一個(gè)邏輯的整合。
本網(wǎng)站文章僅供交流學(xué)習(xí) ,不作為商用,, 版權(quán)歸屬原作者,,部分文章推送時(shí)未能及時(shí)與原作者取得聯(lián)系,若來(lái)源標(biāo)注錯(cuò)誤或侵犯到您的權(quán)益煩請(qǐng)告知,,我們將立即刪除.