mar*_*ser 14 android units-of-measurement
我想在视图上使用特定高度(以像素为单位)绘制文本Canvas.你可以简单地使用Paint.setTextSize(float)像素数或使用dp或sp?
Tod*_*ies 14
它使用像素,但您可以使用以下代码将其转换为dp:
double getDPFromPixels(double pixels) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
case DisplayMetrics.DENSITY_LOW:
pixels = pixels * 0.75;
break;
case DisplayMetrics.DENSITY_MEDIUM:
//pixels = pixels * 1;
break;
case DisplayMetrics.DENSITY_HIGH:
pixels = pixels * 1.5;
break;
}
return pixels;
}
Run Code Online (Sandbox Code Playgroud)
获取此类方法的px值的最简单方法是在dimens.xml文件中定义相应的dp或sp值,并像这样检索它:
int sizeInPx = context.getResources().getDimensionPixelSize(R.dimen.sizeInSp);
Run Code Online (Sandbox Code Playgroud)
根据您的需要,您实际上有3种方法可供使用:
getDimension() 返回以像素为单位的float.
getDimensionPixelSize()返回以像素为单位的int.这与getDimension()相同,除了返回值为ROUNDED到最接近的整数值,并且它确保非零输入值导致非零输出值(例如,0.1返回为1,而不是0).
getDimensionPixelOffset()返回以像素为单位的int.这与getDimension()相同,除了返回值为TRUNCATED(即向下舍入).结果可能为零.
| 归档时间: |
|
| 查看次数: |
10021 次 |
| 最近记录: |