我正在尝试将dp转换为像素。我正在使用这种方法:

//Converts device pixels to regular pixels to draw
private float dpToPixel(float dp) {
    DisplayMetrics metrics = this.getResources().getDisplayMetrics();
    float px = dp * (metrics.densityDpi/160f);
    return px;
}

然后,我尝试从dimen.xml文件中的变量获取dp,如下所示:
int buttonWidth = (int) dpToPixel(R.dimen.buttonHeight);

然后,使用buttonWidth变量的宽度创建一个缩放的位图。
最后,我将其绘制到 Canvas 上。但是,当我尝试运行它时,什么也没有显示。有人可以帮忙吗?

最佳答案

我认为您的问题中有错别字,或者您确实没有加载高度值-您实际上是在加载代表资源ID的数字。应该是:

int buttonWidth = (int) dpToPixel(getResorces().getDimension(R.dimen.buttonHeight));

但是...您不需要自己进行转换:
getResources().getDimensionPixelSize(R.dimen.buttonHeight);

关于android - 如何将dp转换为像素并在Android中使用它绘制到 Canvas ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32162693/

10-10 13:44