Comparison of pixel units dp, px, pt, and sp in android

Source: Internet
Author: User

Comparison of pixel units dp, px, pt, and sp in android
Dp (dip): device independent pixels (device independent pixel ). different devices have different display effects, which are related to the hardware of the device. We recommend that you use this function to support WVGA, HVGA, and QVGA without pixels. Px: pixels (pixels). Different devices have the same display effect. Generally, we use HVGA to represent 320x480 pixels, which is usually used. Pt: point, which is a standard unit of length, 1pt = 1/72 inch. It is very easy to use in the printing industry. sp: scaled pixels (zoom in pixels). It is mainly used to display the best for textsize in the font. Therefore, according to google's suggestion, it is best to use sp as the unit of TextView font size, and to view the TextView source code, Android uses sp as the font size unit by default. In addition, the unit used in google Code is px by default. in the apk resource package, when the screen density is 240, resources that use the hdpi label when the screen density is 160, resources that use the mdpi label when the screen density is 120, resources that use the ldpi label. 1dp = 1px on a display at 160 o'clock per inch. The following describes the mutual conversion of several different units. public static int dip2px (Context context, float dipValue) {final float scale = context. getResources (). getDisplayMetrics (). density; return (int) (dipValue * scale + 0.5f);} public static int px2dip (Context context, float pxValue) {final float scale = context. getResource (). getDisplayMetrics (). density; return (int) (pxValue/scale + 0.5f);} public static int dip2px (Context context, f Loat dipValue) {final float scale = context. getResources (). getDisplayMetrics (). density; return (int) (dipValue * scale + 0.5f);} public static int px2dip (Context context, float pxValue) {final float scale = context. getResource (). getDisplayMetrics (). density; return (int) (pxValue/scale + 0.5f);} The following describes how to obtain the resolution: Write the following code in the onCreate method of an Activity: displayMetrics metric = new DisplayMetrics (); getWindowMa Nager (). getdefadisplay display (). getMetrics (metric); int width = metric. widthPixels; // screen width (pixel) int height = metric. heightPixels; // screen height (pixel) float density = metric. density; // screen density (0.75/1.0/1.5) int densityDpi = metric. densityDpi; // screen density DPI (120/160/240) in Android, 1pt is approximately equal to 2.22sp or above for reference. If the UI can provide the best design in sp units, if the sp concept is not in the design, the developer can take an approximate value through appropriate conversion. In the past, programmers often designed computer user interfaces in pixels. For example, define a form field with a width of 300 pixels. the spacing between columns is 5 pixels, And the Icon size is 16 × 16 pixels. The problem with this processing is that if you run the program on a new display with a dot (dpi) higher per inch, the user interface will look small. In some cases, the user interface may be small to difficult to see the content. The measurement units irrelevant to resolution can solve this problem. Android supports all of the following units. Px (pixel): the point on the screen. In (INCHES): the unit of length. Mm (mm): the unit of length. Pt (lbs): 1/72 inch. Dp (density-independent pixels): An abstract unit based on screen density. 1dp = 1px on a display at 160 o'clock per inch. Dip: it is the same as dp and is mostly used in android/ophone examples. Sp (pixels irrelevant to the scale): similar to dp, but can be scaled based on the user's font size preferences.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.