androidwidthpixelunits-of-measurementdensity-independent-pixel

Does setWidth(int pixels) use dip or px?


Does setWidth(int pixels) use device independent pixel or physical pixel as unit? For example, does setWidth(100) set the a view's width to 100 dips or 100 pxs?

Thanks.


Solution

  • It uses pixels, but I'm sure you're wondering how to use dips instead. The answer is in TypedValue.applyDimension(). Here's an example of how to convert dips to px in code:

    // Converts 14 dip into its equivalent px
    Resources r = getResources();
    int px = Math.round(TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_DIP, 14,r.getDisplayMetrics()));