99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

CrossApp屏幕適配方案

2018-08-27 15:26 更新

我們在開發(fā)移動端應用時,首先會面臨一個很棘手的問題,就是市場上的手機,平板等設備的屏幕尺寸、分辨率各有不同,屏寬比也多種多樣,如何來解決這個問題呢?
想要解決這個問題,我們需要了解一下關于顯示的一些基礎概念,已經(jīng)市場上我們常見的尺寸及分辨率。
常見的分辨率
1136*640,1920*1080,960*640,1280*720,800*480。
常見的屏幕尺寸
3.5英寸、4英寸、5英寸、5.5英寸、7英寸等等。

PX:pixels,就是絕對像素。大小固定,不會隨著屏幕不同而改變

PPI:Pixels Per Inch所表示的是每英寸所擁有的像素(Pixel)數(shù)目。因此PPI數(shù)值越高,即代表顯示屏能夠以越高的密度顯示圖像。當然,顯示的密度越高,擬真度就越高。

DPI:每英寸所包含的點,在Android設備上,通常以DPI來表示設備屏幕的顯示精細度。通常情況下,PPI和DPI可以表示同一個概念,PPI主要針對顯示設備,DPI更多應用于打印輸出設備,但都表示每英寸所包含的像素點

PPI

iphone4iPhone5 PPI

CrossApp為我們提供的解決方案:

CrossApp輔助適配方案適配的原則是盡量保持UI的物理尺寸相近,但仍舊可能會有細微變化,具體的變化值由系統(tǒng)決定。在不同設備下,ppi值會有所不同,在保持UI的物理尺寸不變的情況下,在不同設備上的顯示效果會有所差別。屏幕尺寸大的設備,顯示的內(nèi)容會相對較多,ppi值越高,則畫面越精細。

CrossApp提供的Dip類型數(shù)據(jù)

DPoint:點
DSize:面積
DRect:區(qū)域(包含一個點位點和面積)

推薦適配方案

盡量避免固定值
使用比例值
使用基準值
為了防止拉伸變形,多用CAScale9ImageView控件
字體大小推薦使用 (10)
例如:
DSize(100,200);//不推薦這樣寫
DSIze(屏幕寬度/2,屏幕高度/2);//使用比例值
DPoint(父節(jié)點的寬度 -100,父節(jié)點的寬度-200);//使用基準值


CrossApp 橫屏豎屏切換方法

ios方法:

打開ios目錄下RootViewController.mm文件

// Override to allow orientations other than the default portrait orientation.
// This method is deprecated on ios6
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    //豎屏
    //return UIInterfaceOrientationIsPortrait( interfaceOrientation );
    //橫屏
    //return UIInterfaceOrientationIsLandscape( interfaceOrientation );
}
// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead
- (NSUInteger) supportedInterfaceOrientations{
     
#ifdef __IPHONE_6_0
    //豎屏
    //return UIInterfaceOrientationMaskPortrait;
    //橫屏
    //return UIInterfaceOrientationMaskLandscapeRight;
#endif
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    //豎屏
    //return UIInterfaceOrientationPortrait;
    //橫屏
    //return UIInterfaceOrientationLandscapeRight;


更改Device Orientation 屬性為Landscape Right 如圖:

更改Device Orientation 屬性為Landscape Right

Android 方法:


AndroidManifest.xml中 activity 找到 android:screenOrientation屬性。

        "unspecified":默認值 由系統(tǒng)來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向. 

        "landscape":橫屏顯示(寬比高要長) 

        "portrait":豎屏顯示(高比寬要長) 

        "user":用戶當前首選的方向 

        "behind":和該Activity下面的那個Activity的方向一致(在Activity堆棧中的) 

        "sensor":有物理的感應器來決定。如果用戶旋轉(zhuǎn)設備這屏幕會橫豎屏切換。 

        "nosensor":忽略物理感應器,這樣就不會隨著用戶旋轉(zhuǎn)設備而更改了("unspecified"設置除外)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號