為了減少UI的工作量,1個APP只提供1套圖;
為了減少程序員的重復(fù)工作,1個APP只保護(hù)1套程序;
為了在各種分辨率下圖片不失真,UI依照最高分辨率提供圖片;
為了到達(dá)理想的效果,圖片切分盡可能細(xì),將帶有修飾效果的圖片全部和背景分離(比如APP的大背景中有樹、花草、人物,將這些小場景從背景圖中切出來,程序員自己將圖貼上去,只是不同分辨率下的尺寸、位置不1樣。);
為了圖片不變形,圖片寬高必須等比縮放;
原則上程序只有1套布局,對有特殊要求的地方,可以創(chuàng)建多套layout文件夾,為主流分辨率提供相應(yīng)的布局文件;
程序員創(chuàng)建多套values文件夾,文件夾下的dimens.xml文件寄存相應(yīng)分辨率的圖片尺寸和坐標(biāo)。
將公用的布局抽出,在需要使用的地方以include標(biāo)簽的情勢引入。
注:
上面的方案基本上解決了多分辨率適配的問題(項目中大概只需要適配4⑸款分辨率的機(jī)型),對分辨率相差較大或屏幕尺寸相差太大的情況,可以斟酌做兩套UI和兩套程序,這樣才能到達(dá)比較理想的效果,比如很多APP都提供了手機(jī)版和PAD版兩個APP。
多分辨率適配通常的做法是在同1套程序下依照分辨率創(chuàng)建多個layout文件夾,但在開發(fā)中我發(fā)現(xiàn)也能夠依照分辨率創(chuàng)建多個values文件夾,比如:values⑴230x800、values⑴920x1200、values⑴969x1536、values⑼74x768,對依照分辨率創(chuàng)建不同文件夾特別需要說明的是:
格式:文件夾名稱-大數(shù)值x小數(shù)值(大數(shù)值在前,小數(shù)值在后);
文件夾名稱中的數(shù)值不是機(jī)器的真實(shí)分辨率,需要減掉通知欄的高度;
同1分辨率在橫豎屏情況下是是兩個不同的文件夾,比如分辨率為1024x768,通知欄高度為50,那末橫屏對應(yīng)的文件夾為:values⑴024x718,豎屏對應(yīng)的文件夾為values⑼74x768。