Can Android support dp's less than 1dp?

后端 未结 3 1962
予麋鹿
予麋鹿 2020-12-23 11:24

I am making a calendar and I need a grid. Problem is the borders, or rather the space between each grid, which is what I am using to kind of simulate a grid, is 1 dp. But it

3条回答
  •  星月不相逢
    2020-12-23 12:14

    Simple answer is yes, you can.

    Simpe solution to your problem (i.e. achieve the thinnest possible line) set thinckness to: 1px

    I suggest px as its not device dependant and it is the smallest measure available, furthermore it wont be converted into another form, therefore no rounding errors nor any unexpected rendering... let me explain.

    Android layout xml file, or dimensions xml values file, will allow you to enter decimal values for dp.

    HOWEVER: I have experimented with several values from 0.1dp to 1dp, on many devices. Depending on the device - it may not render so as you expect.

    On lower pixel density devices, the lines may render thicker on one side compared to another side even though they are coded to have the same... This is due to inaccuracy introduced when truncating the converted to dp to px value - (as Devunwired mentions):

    px = (int)(scale * dp + 0.5)
    

    A pixel (px) is the smallest unit and must be an integer. so - if your aim is to simply have the smallest possible line/border, why not set it to:

    1px

    I hope this helps!

提交回复
热议问题