Android将dp单位转换为系数为0.5f的像素单位

时间:2018-09-24 12:36:09

标签: android android-layout

我读过here有关将dp单位转换为像素单位的信息。但我不明白0.5f。这个数字从哪里来?它的用途是什么?

// The gesture threshold expressed in dp
private static final float GESTURE_THRESHOLD_DP = 16.0f;

// Get the screen's density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale

mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);

// Use mGestureThreshold as a distance in pixels...

2 个答案:

答案 0 :(得分:2)

将浮点数铸造为整数将使它们成为底数。 0.5f是四舍五入的数字:

x = (int) 3.9
print x // 3



x = (int) 3.9 + 0.5f
print x // 4

答案 1 :(得分:1)

它可以四舍五入。小数位数可以是小数(例如1.5)。这意味着乘积可能不是整数。加.5然后转换为int可以确保如果该数字大于两个整数之间的一半,则将其四舍五入;如果该数字小于一半的一半,则将其四舍五入。