應(yīng)用界面元素間的投影最能讓用戶清晰地感知用戶界面的深度,那么南昌APP開(kāi)發(fā)中投影是如何實(shí)現(xiàn)的呢?有些人第一反應(yīng)會(huì)覺(jué)得這是設(shè)計(jì)人員的事,開(kāi)發(fā)人員直接調(diào)用就行了。他們這樣想或許有他們的道理,但無(wú)論如何,有了分歧就要具體問(wèn)題具體分析。稍加分析之后就會(huì)發(fā)現(xiàn),哪怕是簡(jiǎn)單的應(yīng)用,也涉及大量的surface動(dòng)畫(huà)特效,處理這樣千變?nèi)f化的投影簡(jiǎn)直是巨大的工作量。而且交給設(shè)計(jì)人員去繪制肯定也不現(xiàn)實(shí)。實(shí)際上,只要給每個(gè)視圖設(shè)置elevation,Android就可以幫我們實(shí)現(xiàn)陰影繪制。
隨著Lollipop系統(tǒng)的發(fā)布,Android為布局系統(tǒng)引入了Z軸概念。這允許我們?cè)谌S空間里布置視圖。如下圖所示,elevation類似賦予布局視圖的坐標(biāo):視圖可以動(dòng)態(tài)遠(yuǎn)離其原始坐標(biāo),但其原始位置是不變的。
可以使用View.setElevation(float)方法或在布局XML文件中設(shè)置elevation值,如下代碼所示。
在布局文件中設(shè)置elevation值
因?yàn)閑levation值要作為Z基準(zhǔn)值使用,所以我們最好采用設(shè)置XML屬性值的方式。而且,相比setElevation(float)方法,這種方式使用靈活,Lollipop以前版本的系統(tǒng)會(huì)默認(rèn)忽略 android:elevation屬性,因此,比較難以對(duì)付的兼容性問(wèn)題也就不用考慮了。
要修改View視圖的elevation,我們可以使用translationZ和Z屬性。如下圖所示,Z值總是等于elevation 加上 translationZ。如果給Z一個(gè)值,那么系統(tǒng)會(huì)自動(dòng)計(jì)算得出translationZ值。
看完以上介紹,我想大家對(duì)Android 開(kāi)發(fā)中實(shí)現(xiàn)陰影繪制的方法有所了解了,如有還有不知道的朋友,可隨時(shí)來(lái)電和我們聯(lián)系,百恒網(wǎng)絡(luò)是一家專業(yè)從事南昌APP開(kāi)發(fā)、網(wǎng)站建設(shè)等服務(wù)的企業(yè),對(duì)于APP開(kāi)發(fā)技術(shù)非常嫻熟,只要您有需要,我們一定竭誠(chéng)為您服務(wù)!