Android控件相對位置及長度單位

f663x 9年前發布 | 2K 次閱讀 Java Android

首先講講界面布局中的幾位置設置參數區別,從下面一個簡單的圖形來做年對比,A代表我們布局頁面中一個ViewGroup,比如是LinearLayout,B代碼一個View,比如是Button.


android:layout_gravity:此控件相對父控件的相對位置(B相對于A的位置)

android:gravity:此控件中的內容相對此控件的相對位置(B中的文字"TextView"在B中的位置)

padding:控件中的文字距離本身控件邊框的距離(B中的文字"TextView"在B中離B的邊框位置)

margin:控件整體距離相對另外一個控件的距離(B離A中其它View的位置)

布局中控件大小的合適參數選擇:

px(像素):屏幕上的點, 不同設備顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。

dp(與密度無關的像素):一種基于屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。

dip:與dp相同,多用于android/ophone示例中。建議使用這個(與像素無關)

sp(與刻度無關的像素):與dp類似,但是可以根據用戶的字體大小首選項進行縮放。

為了使用戶界面能夠在現在和將來的顯示器類型上正常顯示,建議大家始終使用sp作為文字大小的單位,將dip作為其他元素的單位。

常用方法:

 DisplayMetrics dm = new DisplayMetrics();  

  activity.getWindowManager().getDefaultDisplay().getMetrics(dm);  

  density = dm.density;  //密度

  densityDpi = dm.densityDpi;//獲得設備每英寸多少像素

/**  
 * dip轉化為像素px
 */    
  public static int getPx(int dip) {    
    return (int) (dip * density);    
    // return (int)(dip*(densityDpi/160));     
  }    
   
/**  
 * px像素轉化為dip   
 */    
 public static int getDip(int px) {    
    return (int) (px / density);    
    // return (int)((px*160)/densityDpi);      }    

公式:dip=(1px*160)/Dpi;

 本文由用戶 f663x 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!